LyoKICogQ29weXJpZ2h0IDIwMDUgQWxleGFuZGVyIE4uIFP4cm5lcyA8YWxleEB0aGVoYW5kb2ZhZ29ueS5jb20+CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KClNUUklOR1RBQkxFIExBTkdVQUdFIExBTkdfTk9SV0VHSUFOLCBTVUJMQU5HX05PUldFR0lBTl9CT0tNQUwKQkVHSU4KCi8qIE1NU1lTIGVycm9ycyAqLwpNTVNZU0VSUl9OT0VSUk9SLCAJCSJEZW4gb3BwZ2l0dGUga29tbWFuZG9lbiBibGUgdXRm+HJ0LiIKTU1TWVNFUlJfRVJST1IsIAkJIlVkZWZpbmVydCBla3N0ZXJuIGZlaWwuIgpNTVNZU0VSUl9CQURERVZJQ0VJRCwgCQkiRW4gZW5oZXRzLUlEIHNvbSBlciB1dGVuZm9yIHJla2tldmlkZGUgcOUgZGl0dCBzeXN0ZW0gZXIgYnJ1a3QuIgpNTVNZU0VSUl9OT1RFTkFCTEVELCAJCSJEcml2ZXJlbiBibGUgaWtrZSBha3RpdmVydC4iCk1NU1lTRVJSX0FMTE9DQVRFRCwgCQkiRGVuIG9wcGdpdHRlIGVuaGV0ZW4gZXIgYWxsZXJlZGUgaSBicnVrdXNlLiBWZW50IHRpbCBkZW4gZXIgbGVkaWcgb2cgcHL4diBpZ2plbi4iCk1NU1lTRVJSX0lOVkFMSEFORExFLCAJCSJEZXQgb3BwZ2l0dGUgZW5oZXRzaOVuZHRha2V0IGVyIHVneWxkaWcuIgpNTVNZU0VSUl9OT0RSSVZFUiwgCQkiRGV0IGVyIGluZ2VuIGRyaXZlciBpbnN0YWxsZXJ0IHDlIHN5c3RlbWV0LlxuIgpNTVNZU0VSUl9OT01FTSwgCQkiSWtrZSBub2sgbWlubmUgZm9yIGRlbm5lIG9wZXJhc2pvbmVuLiBBdnNsdXR0IGV0dCBlbGxlciBmbGVyZSBwcm9ncmFtbWVyIGZvciDlIGZyaWdq+HJlIG1pbm5lIG9nIHBy+HYgaWdqZW4uIgpNTVNZU0VSUl9OT1RTVVBQT1JURUQsIAkJIkRlbm5lIGZ1bmtzam9uZW4gc3T4dHRlcyBpa2tlLiBCcnVrIGZ1bmtzam9uZW4gJ0NhcGFiaWxpdGllcycgZm9yIOUgZmlubmUgdXQgaHZpbGtlIGZ1bmtzam9uZXIgb2cgbWVsZGluZ2VyIGRyaXZlcmVuIHN0+HR0ZXIuIgpNTVNZU0VSUl9CQURFUlJOVU0sIAkJIkV0IGZlaWxudW1tZXIgc29tIGlra2UgZXIgZGVmaW5lcnQgaSBzeXN0ZW1ldCBibGUgb3BwZ2l0dC4iCk1NU1lTRVJSX0lOVkFMRkxBRywgCQkiRXQgdWd5bGRpZyBmbGFnZyBibGUgZ2l0dCB0aWwgZW4gc3lzdGVtZnVua3Nqb24uIgpNTVNZU0VSUl9JTlZBTFBBUkFNLCAJCSJFbiB1Z3lsZGlnIHBhcmFtZXRlciBibGUgZ2l0dCB0aWwgZW4gc3lzdGVtZnVua3Nqb24uIgoKLyogV0FWRSBlcnJvcnMgKi8KV0FWRVJSX0JBREZPUk1BVCwgCQkiRGV0IG9wcGdpdHRlIGZvcm1hdGV0IHN0+HR0ZXMgaWtrZSBlbGxlciBrYW4gaWtrZSBvdmVyc2V0dGVzLiBCcnVrIGZ1bmtzam9uZW4gJ0NhcGFiaWxpdGllcycgZm9yIOUgc2UgZGUgc3T4dHRlZGUgZm9ybWF0ZW4uIgpXQVZFUlJfU1RJTExQTEFZSU5HLCAJCSJLYW4gaWtrZSB1dGb4cmUgZGVubmUgb3BlcmFzam9uZW4gbWVucyBtZWRpZS1kYXRhIHNwaWxsZXMuIFRpbGJha2VzdGlsbCBlbmhldGVuLCBlbGxlciB2ZW50IHRpbCBkYXRhZW5lIGVyIHNwaWx0IGF2LiIKV0FWRVJSX1VOUFJFUEFSRUQsIAkJIkRpZ2l0YWxseWRob2RldCB2YXIgaWtrZSBmb3JiZXJlZHQuIEJydWsgZnVua3Nqb25lbiAnUHJlcGFyZScgZm9yIOUgZm9yYmVyZWRlIGhvZGV0IG9nIHBy+HYgZGVyZXR0ZXIgaWdqZW4uIgpXQVZFUlJfU1lOQywgCQkJIkthbiBpa2tlIOVwbmUgZW5oZXRlbiB1dGVuIOUgYnJ1a2UgZmxhZ2dldCAnV0FWRV9BTExPV1NZTkMuIEJydWsgZmxhZ2dldCBvZyBwcvh2IGlnamVuLiIKCi8qIE1JREkgZXJyb3JzICovCk1JRElFUlJfVU5QUkVQQVJFRCwgCQkiTUlESS1ob2RldCB2YXIgaWtrZSBmb3JiZXJlZHQuIEJydWsgZnVua3Nqb25lbiAnUHJlcGFyZScgZm9yIOUgZm9yYmVyZWRlIGhvZGV0IG9nIHBy+HYgZGVyZXR0ZXIgaWdqZW4uIgpNSURJRVJSX1NUSUxMUExBWUlORywgCQkiS2FuIGlra2UgdXRm+HJlIGRlbm5lIG9wZXJhc2pvbmVuIG7lciBtZWRpZS1kYXRhIGF2c3BpbGxlcy4gVGlsYmFrZXN0aWxsIGVuaGV0ZW4sIGVsZWxyIHZlbnQgdGlsIGRhdGFlbmUgZXIgZmVyZGlnIGF2c3BpbHQuIgpNSURJRVJSX05PTUFQLCAJCQkiRmFudCBpa2tlIGV0IE1JREkta2FydC4gRGV0IGthbiB25nJlIGV0IHByb2JsZW0gbWVkIGRyaXZlcmVuLCBlbGxlciBmaWxlbiAnTUlESU1BUC5DRkcnIGthbiB25nJlIGtvcnJ1cHQgZWxsZXIgbWFuZ2xlLiIKTUlESUVSUl9OT1RSRUFEWSwgCQkiUG9ydGVuIHNlbmRlciBkYXRhIHRpbCBlbmhldGVuLiBWZW50IHRpbCBkYXRlbmUgZXIgZmVyZGlnIHNlbmR0IG9nIHBy+HYgaWdlbi4iCk1JRElFUlJfTk9ERVZJQ0UsIAkJIk9wcHNldHRldCBmb3IgTUlESS1rYXJ0bGVnZ2VyZW4gcmVmZXJlcmVyIHRpbCBlbiBNSURJLWVuaGV0IHNvbSBpa2tlIGVyIGluc3RhbGxlcnQgcOUgc3lzdGVtZXQuIEJydWsgTUlESS1rYXJ0bGVnZ2VyZW4gdGlsIOUgcmVkaWdlcmUgb3Bwc2V0dGV0LiIKTUlESUVSUl9JTlZBTElEU0VUVVAsIAkJIkRldCBnamVsZGVuZGUgTUlESS1vcHBzZXR0ZXQgZXIgc2thZGV0LiBLb3BpZXIgZGVuIG9wcHJpbm5lbGlnZSAnTUlESU1BUC5DRkcnLWZpbGVuIHRpbCBXaW5kb3dzJyBzeXN0ZW0ta2F0YWxvZyBvZyBwcvh2IGlnamVuLiIKCi8qIE1DSSBlcnJvcnMgKi8KTUNJRVJSX0lOVkFMSURfREVWSUNFX0lELCAJIlVneWxkaWcgTUNJIGVuaGV0cy1JRC4gQnJ1ayBJRCdlbiBzb20gcmV0dXJuZXJlcyBu5XIgTUNJLWVuaGV0ZW4g5XBuZXMuIgpNQ0lFUlJfVU5SRUNPR05JWkVEX0tFWVdPUkQsIAkiRHJpdmVyZW4ga3VubmUgaWtrZSBnamVua2plbm5lIGRlbiBvcHBnaXR0ZSBrb21tYW5kb3BhcmFtZXRlcmVuLiIKTUNJRVJSX1VOUkVDT0dOSVpFRF9DT01NQU5ELAkiRHJpdmVyZW4ga3VubmUgaWtrZSBnamVua2plbm5lIGRlbiBvcHBnaXR0ZSBrb21tYW5kb2VuLiIKTUNJRVJSX0hBUkRXQVJFLCAJCSJEZXQgZXIgZXQgcHJvYmxlbSBtZWQgbWVkaWVlbmhldGVuLiBT+HJnIGZvciBhdCBkZW4gdmlya2VyIG9yZGVudGxpZyBlbGxlciBrb250YWt0IGxldmVyYW5k+HJlbi4iCk1DSUVSUl9JTlZBTElEX0RFVklDRV9OQU1FLCAJIkRlbiBvcHBnaXR0ZSBlbmhldGVuIGVyIGlra2Ug5XBlbiwgZWxsZXIgaWtrZSBnamVua2plbnQgYXYgTUNJLiIKTUNJRVJSX09VVF9PRl9NRU1PUlksIAkJIklra2Ugbm9rIG1pbm5lIGZvciBkZW5uZSBvcGVyYXNqb25lbi5cbkF2c2x1dHQgZXR0IGVsbGVyIGZsZXJlIHByb2dyYW1tZXIgZm9yIOUgZnJpZ2r4cmUgbWlubmUgb2cgcHL4diBpZ2plbi4iCk1DSUVSUl9ERVZJQ0VfT1BFTiwgCQkiRW5oZXRzbmF2bmV0IGJydWtlcyBhbGxlcmVkZSBzb20gZXQgYWxpZXMgYXYgZGV0dGUgcHJvZ3JhbW1ldC4gQnJ1ayBldCB1bmlrdCBhbGlhcy4iCk1DSUVSUl9DQU5OT1RfTE9BRF9EUklWRVIsIAkiRXQgdW9wcGRhZ2VsaWcgcHJvYmxlbSBvcHBzdG9kIHVuZGVyIGxhc3RpbmdlbiBhdiBkZW4gb3BwZ2l0dGUgZHJpdmVyZW4uIgpNQ0lFUlJfTUlTU0lOR19DT01NQU5EX1NUUklORywgCSJJa2tlIGtvbW1hbmRvIGJsZSBvcHBnaXR0LiIKTUNJRVJSX1BBUkFNX09WRVJGTE9XLCAJCSJTa3Jldm5lIHN0cmVuZ2VuIHZhciBmb3Igc3RvciB0aWwg5SBwYXNzZSBpIHJldHVyaHVydGlnbWlubmV0LiDYayBzdPhycmVsc2VuIHDlIGh1cnRpZ21pbm5ldC4iCk1DSUVSUl9NSVNTSU5HX1NUUklOR19BUkdVTUVOVCwgIkRlbiBvcHBnaXR0ZSBrb21tYW5kb2VuIGtyZXZlciBlbiB0ZWduc3RyZW5nLXBhcmFtZXRlci4gT3BwZ2kgZW4uIgpNQ0lFUlJfQkFEX0lOVEVHRVIsIAkJIkRldCBvcHBnaXR0ZSBoZWx0YWxsZXQgZXIgdWd5bGRpZyBmb3IgZGVubmUga29tbWFuZG9lbi4iCk1DSUVSUl9QQVJTRVJfSU5URVJOQUwsIAkiRW5oZXRzZHJpdmVyZW4gcmV0dXJuZXJ0ZSBlbiB1Z3lsZGlnIHJldHVydHlwZS4gS29udGFrdCBwcm9kdXNlbnRlbiBmb3Ig5SBm5SBlbiBueSBkcml2ZXIuIgpNQ0lFUlJfRFJJVkVSX0lOVEVSTkFMLCAJIkRldCBlciBldCBwcm9ibGVtIG1lZCBlbmhldHNkcml2ZXJlbi4gS29udGFrdCBwcm9kdXNlbnRlbiBmb3Ig5SBm5SBlbiBueSBkcml2ZXIuIgpNQ0lFUlJfTUlTU0lOR19QQVJBTUVURVIsIAkiRGVuIG9wcGdpdHRlIGtvbW1hbmRvZW4ga3JldmVyIGVuIHBhcmFtZXRlci4gT3BwZ2kgZW4uIgpNQ0lFUlJfVU5TVVBQT1JURURfRlVOQ1RJT04sIAkiTUNJLWVuaGV0ZW4gc29tIGJydWtlcyBzdPh0dGVyIGlra2UgZGVuIG9wcGdpdHRlIGtvbW1hbmRvZW4uIgpNQ0lFUlJfRklMRV9OT1RfRk9VTkQsIAkJIkt1bm5lIGlra2UgZmlubmUgZGVuIG9wcGdpdHRlIGZpbGVuLiBLb250cm9sbGVyIGF0IHN0aWVuIG9nIGZpbG5hdm5ldCBlciByaWt0aWcuIgpNQ0lFUlJfREVWSUNFX05PVF9SRUFEWSwgCSJFbmhldHNkcml2ZXJlbiBlciBpa2tlIGtsYXIuIgpNQ0lFUlJfSU5URVJOQUwsIAkJIkV0IHByb2JsZW0gb3Bwc3RvZCB1bmRlciBpbml0YWxpc2VyaW5nZW4gYXYgTUNpLiBQcvh2IOUgc3RhcnRlIFdpbmRvd3MgcOUgbnl0dC4iCk1DSUVSUl9EUklWRVIsIAkJCSJEZXQgZXIgZXQgcHJvYmxlbSBtZWQgZW5oZXRzZHJpdmVyZW4uIERyaXZlcmVuIGhhciBhdnNsdXR0ZXQsIGblciBpa2tlIHRpbGdhbmcgdGlsIGZlaWwuIgpNQ0lFUlJfQ0FOTk9UX1VTRV9BTEwsIAkJIkthbiBpa2tlIGJydWtlICdhbGwnIHNvbSBlbmhldHNuYXZuIG1lZCBkZW4gb3BwZ2l0dGUga29tbWFuZG9lbi4iCk1DSUVSUl9NVUxUSVBMRSwgCQkiRmVpbCBvcHBzdG9kIGkgbWVyIGVubiDpbiBlbmhldC4gT3BwZ2kgaHZlciBrb21tYW5kbyBvZyBlbmhldCBzZXBlcmF0IGZvciDlIGZpbm5lIHV0IGh2aWxrZW4gZW5oZXQgc29tIGZvcuVyc2FrZXQgZmVpbGVuLiIKTUNJRVJSX0VYVEVOU0lPTl9OT1RfRk9VTkQsIAkiS2FuIGlra2UgYmVzdGVtbWUgZW5oZXRzdHlwZW4gZnJhIGRlbiBvcHBnaXR0ZSBmaWxlbnMgZXR0ZXJuYXZuLiIKTUNJRVJSX09VVE9GUkFOR0UsIAkJIkRlbiBvcHBnaXR0ZSBwYXJhbWV0ZXJlbiBlciB1dGVuZm9yIHJla2tldmlkZGUgZm9yIGRlbiBvcHBnaXR0ZSBrb21tYW5kb2VuLiIKTUNJRVJSX0ZMQUdTX05PVF9DT01QQVRJQkxFLCAJIkRlIG9wcGdpdHRlIHBhcmFtZXRlcm5lIGthbiBpa2tlIGJydWtlcyBzYW1tZW4uIgpNQ0lFUlJfRklMRV9OT1RfU0FWRUQsIAkJIkt1bm5lIGlra2UgbGFncmUgZGVuIG9wcGdpdHRlIGZpbGVuLiBLb250cm9sbGVyIGF0IGR1IGhhciBub2sgZGlza3BsYXNzLCBvZyBhdCBkdSBmb3J0c2F0dCBlciB0aWxrb2JsZXQgbmV0dHZlcmtldC4iCk1DSUVSUl9ERVZJQ0VfVFlQRV9SRVFVSVJFRCwgCSJGYW50IGlra2UgZGVuIG9wcGdpdHRlIGVuaGV0ZW4uIEtvbnRyb2xsZXIgYXQgZGVuIGVyIGluc3RhbGxlcnQgZWxsZXIgYXQgZW5oZXRzbmF2bmV0IGVyIHJpa3RpZyBzdGF2ZXQuIgpNQ0lFUlJfREVWSUNFX0xPQ0tFRCwgCQkiRGVuIG9wcGdpdHRlIGVuaGV0ZW4gZXIgaWZlcmQgbWVkIOUgYXZzbHV0dGVzLiBWZW50IGV0IHBhciBzZWt1bmRlciBvZyBwcvh2IGlnamVuLiIKTUNJRVJSX0RVUExJQ0FURV9BTElBUywgCSJEZXQgb3BwZ2l0dGUgYWxpYXNldCBicnVrZXMgYWxsZXJlZGUgaSBkZXR0ZSBwcm9ncmFtbWV0LiBCcnVrIGV0IHVuaWt0IGFsaWFzLiIKTUNJRVJSX0JBRF9DT05TVEFOVCwgCQkiRGVuIG9wcGdpdHRlIHBhcmFtZXRlcmVuIGVyIHVneWxkaWcgZm9yIGRlbm5lIGtvbW1hbmRvZW4uIgpNQ0lFUlJfTVVTVF9VU0VfU0hBUkVBQkxFLCAJIkVuaGV0c2RyaXZlcmVuIGVyIGFsbGVyZWRlIGkgYnJ1ay4gQnJ1ayBwYXJhbWV0ZXJlbiAnc2hhcmVhYmxlJyBmb3IgaHZlciAnb3Blbicta29tbWFuZG8gZm9yIOUgZGVsZSBkZW4uIgpNQ0lFUlJfTUlTU0lOR19ERVZJQ0VfTkFNRSwgCSJEZW4gb3BwZ2l0dGUga29tbWFuZG9lbiBrcmV2ZXIgZXQgYWxpYXMsIGVuIGZpbCwgZHJpdmVyIGVsbGVyIGV0IGVuaGV0c25hdm4uIgpNQ0lFUlJfQkFEX1RJTUVfRk9STUFULCAJIkRlbiBvcHBnaXR0ZSB2YXJkaWVuIGZvciB0aWRzZm9ybWF0ZXQgZXIgdWd5bGRpZy4gU2UgaSBNQ0ktZG9rdW1lbnRhc2pvbmVuIGZvciBneWxkaWdlIGZvcm1hdGVyLiIKTUNJRVJSX05PX0NMT1NJTkdfUVVPVEUsIAkiRXQgZG9iYmVsdCBoZXJtZXRlZ24gZm9yIGx1a2tpbmcgbWFuZ2xlciBmcmEgcGFyYW1ldGVydmVyZGllbi4gT3BwZ2kgZXQuIgpNQ0lFUlJfRFVQTElDQVRFX0ZMQUdTLCAJIkVuIHBhcmFtZXRlciBlbGxlciB2ZXJkaSBibGUgb3BwZ2l0dCB0byBnYW5nZXIuIE9wcGdpIGRldCBrdW4g6W4gZ2FuZy4iCk1DSUVSUl9JTlZBTElEX0ZJTEUsIAkJIkRlbiBvcHBnaXR0ZSBmaWxlbiBrYW4gaWtrZSBzcGlsbGVzIGF2IHDlIGRlbiBvcHBnaXR0ZSBNQ0ktZW5oZXRlbi4gRmlsZW4gZXIga2Fuc2tqZSBrb3JydXB0LCBlbGxlciBpIGZlaWwgZm9ybWF0LiIKTUNJRVJSX05VTExfUEFSQU1FVEVSX0JMT0NLLCAJIkVuIG51bGxwYXJhbXRlcmJsb2trIGJsZSBnaXR0IHRpbCBNQ0kuIgpNQ0lFUlJfVU5OQU1FRF9SRVNPVVJDRSwgCSJLYW4gaWtrZSBsYWdyZSBlbiBmaWwgdXRlbiBhdm4uIE9wcGdpIGV0IGZpbG5hdm4uIgpNQ0lFUlJfTkVXX1JFUVVJUkVTX0FMSUFTLCAJIkR1IG3lIG9wcGdpIGV0IGFsaWFzIG7lciBkdSBicnVrZXIgcGFyYW1ldGVyZW4gJ25ldycuIgpNQ0lFUlJfTk9USUZZX09OX0FVVE9fT1BFTiwgCSJLYW4gaWtrZSBicnVrZSBmbGFnZ2V0ICdub3RpZnknIG1lZCBhdXRvbWF0aXNrIOVwbmV0ZSBlbmhldGVyLiIKTUNJRVJSX05PX0VMRU1FTlRfQUxMT1dFRCwgCSJLYW4gaWtrZSBicnVrZSBldCBmaWxuYXZuIG1lZCBkZW4gb3BwZ2l0dGUgZW5oZXRlbi4iCk1DSUVSUl9OT05BUFBMSUNBQkxFX0ZVTkNUSU9OLCAJIkt1bm5lIGlra2UgdXRm+HJlIGtvbW1hbmRvZW4gaSBkZW4gb3BwZ2l0dGUgcmVra2Vm+GxnZW4uIE9yZG5lIHJla2tlZvhsZ2RlbiBvZyBwcvh2IGlnamVuLiIKTUNJRVJSX0lMTEVHQUxfRk9SX0FVVE9fT1BFTiwgCSJLdW5uZSBpa2tlIHV0ZvhyZSBkZW4gb3BwZ2l0dGUga29tbWFuZG9lbiBw5SBlbiBhdXRvbWF0aXNrIOVwbmV0IGVuaGV0LiBWZW50IHRpbCBlbmhldGVuIGVyIGx1a2tldCBvZyBwcvh2IGlnamVuLiIKTUNJRVJSX0ZJTEVOQU1FX1JFUVVJUkVELCAJIkZpbG5hdm5ldCBlciB1Z3lsZGlnLiBLb250cm9sbGVyIGF0IGZpbG5hdm5ldCBpa2VrIGVyIGxlbmdyZSBlbm4gOCB0ZWduLCBldHRlcmZ1bGd0IGF2IGV0IHB1bmt0dW0gb2cgZXQgZXR0ZXJuYXZuLiIKTUNJRVJSX0VYVFJBX0NIQVJBQ1RFUlMsIAkiS2FuIGlra2Ugb3BwZ2kgZWtzdHJhIHRlZ24gZXR0ZXIgZW4gc3RyZW5nIG9tc2x1dHRldCBhdiBkb2JsZSBhbmb4cnNlbHN0ZWduLiIKTUNJRVJSX0RFVklDRV9OT1RfSU5TVEFMTEVELCAJIkRlbiBvcHBnaXR0ZSBlbmhldGVuIGVyIGlra2UgaW5zdGFsbGVydCBw5SBzeXN0ZW1ldC4gQnJ1ayB2YWxnZXQgJ0RyaXZlcmUnIGkgS29udHJvbGxwYW5lbCBmb3Ig5SBpbnN0YWxsZXJlIGVuaGV0ZW4uIgpNQ0lFUlJfR0VUX0NELCAJCQkiRmlrayBpa2tlIHRpbGdhbmcgdGlsIGRlbiBvcHBnaXR0ZSBmaWxlbiBlbGxlciBNQ2ktZW5oZXRlbi4gUHL4diDlIGVuZHJlIGthdGFsb2dlciBlbGxlciBzdGFydGUgbWFza2luZW4gcOUgbnl0dC4iCk1DSUVSUl9TRVRfQ0QsIAkJCSJGaWtrIGlra2UgdGlsZ2FuZyB0aWwgZGVuIG9wcGdpdHRlIGZpbGVuIGVsbGVyIE1DSS1lbmhldGVuIGZvcmRpIHByb2dyYW1tZXQgaWtrZSBrYW4gZW5kcmUgYXJiZWlkc2thdGFsb2cuIgpNQ0lFUlJfU0VUX0RSSVZFLCAJCSJGaWtrIGlra2UgdGlsZ2FuZyB0aWwgZGVuIG9wcGdpdHRlIGZpbGVuIGVsbGVyIE1DSS1lbmhldGVuIGZvcmRpIHByb2dyYW1tZXQgaWtrZSBrYW4gZW5kcmUgYXJiZWlkc2thdGFsb2cuIgpNQ0lFUlJfREVWSUNFX0xFTkdUSCwgCQkiT3BwZ2kgZW4gZW5oZXQgZWxsZXIgZHJpdmVybmF2biBzb20gZXIgbWluZHJlIGVubiA3OSB0ZWduLiIKTUNJRVJSX0RFVklDRV9PUkRfTEVOR1RILCAJIk9wcGdpIGVuIGVuaGV0IGVsbGVyIGRyaXZlcm5hdm4gc29tZXIgbWluZHJlIGVubiA2OSB0ZWduLiIKTUNJRVJSX05PX0lOVEVHRVIsIAkJIkRlbiBvcHBnaXR0ZSBrb21tYW5kb2VuIHRyZW5nZXIgZW4gaGVsdGFsbC1wYXJhbWV0ZXIuIE9wcGdpIGVuLiIKTUNJRVJSX1dBVkVfT1VUUFVUU0lOVVNFLCAJIkFsbGUgZGlnaXRhbGx5ZGVuaGV0ZW4gc29tIGthbiBzcGlsbGUgYXYgZmlsZXIgaSBkZXQgZ2plbGRlbmRlIGZvcm1hdGV0IGVyIG9wcHRhdHQuIFZlbnQgdGlsIGVuIGRpZ2l0YWxseWRlbmhldCBlciBsZWRpZyBvZyBwcvh2IGlnamVuLiIKTUNJRVJSX1dBVkVfU0VUT1VUUFVUSU5VU0UsIAkiS3VubmUgaWtrZSBzZXR0ZSBkZW4gZ2plbGRlbmRlIGRpZ2l0YWxseWRlbmhldGVuIHRpbCBhdnNwaWxsaW5nIGZvcmRpIGRlbiBlciBpIGJydWsuIFZlbnQgdGlsIGVuaGV0ZW4gZXIgbGVkaWcgb2cgcHL4diBpZ2plbi4iCk1DSUVSUl9XQVZFX0lOUFVUU0lOVVNFLCAJIkFsbGUgZGlnaXRhbGx5ZGVuaGV0ZXIgc29tIGthbiB0YSBvcHAgZmlsZXIgaSBkZXQgZ2plbGRlbmRlIGZvcm1hdGV0IGVyIG9wcHRhdHQuIFZlbnQgdGlsIGVuIGRpZ2l0YWxseWRlbmhldCBlciBsZWRpZyBvZyBwcvh2IGlnamVuLiIKTUNJRVJSX1dBVkVfU0VUSU5QVVRJTlVTRSwgCSJLdW5uZSBpa2tlIHNldHRlIGRlbiBnamVsZGVuZGUgZGlnaXRhbGx5ZGVuaGV0ZW4gdGlsIG9wcHRhayBmb3JkaSBkZW4gZXIgaSBicnVrLiBWZW50IHRpbCBlbmhldGVuIGVyIGxlZGlnIG9nIHBy+HYgaWdqZW4uIgpNQ0lFUlJfV0FWRV9PVVRQVVRVTlNQRUNJRklFRCwJIkVuaHZlciBrb21wYXRpYmVsIGVuaGV0IGZvciBkaWdpdGFsbHlkYXZzcGlsbGluZyBrYW4gYnJ1a2VzLiIKTUNJRVJSX1dBVkVfSU5QVVRVTlNQRUNJRklFRCwgCSJFbmh2ZXIga29tcGF0aWJlbCBseWRvcHB0YWtlbmhldCBrYW4gYnJ1a2VzLiIKTUNJRVJSX1dBVkVfT1VUUFVUU1VOU1VJVEFCTEUsIAkiSW5nZW4gZGlnaXRhbGx5ZGVuaGV0IHNvbSBrYW4gc3BpbGxlIGF2IGZpbGVyIGkgZGV0IGdqZWxkZW5kZSBmb3JtYXRldCBlciBpbnN0YWxsZXJ0LiBCcnVrIHZhbGdldCAnRHJpdmVyZScgZm9yIOUgaW5zdGFsbGVyZSBkaWdpdGFsbHlkZW5oZXRlbi4iCk1DSUVSUl9XQVZFX1NFVE9VVFBVVFVOU1VJVEFCTEUsIkVuaGV0ZW4gZHUgcHL4dmVyIOUgc3BpbGxlIGF2IHDlIGdqZW5ramVubmVyIGlra2UgZGV0IGdqZWxkZW5kZSBmaWxmb3JtYXRldC4iCk1DSUVSUl9XQVZFX0lOUFVUU1VOU1VJVEFCTEUsIAkiSW5nZW4gZGlnaXRhbGx5ZGVuaGV0IHNvbSBrYW4gdGEgb3BwIGZpbGVyIGkgZGV0IGdqZWxkZW5kZSBmb3JtYXRldCBlciBpbnN0YWxsZXJ0LiBCcnVrICdEcml2ZXJlJy12YWxnZXQgZm9yIOUgaW5zdGFsbGVyZSBkaWdpdGFsbHlkZW5oZXRlbi4iCk1DSUVSUl9XQVZFX1NFVElOUFVUVU5TVUlUQUJMRSwgIkVuaGV0ZW4gZHUgcHL4dmVyIOUgdGEgb3BwIGZyYSBnamVua2plbm5lciBpa2tlIGRldCBnamVsZGVuZGUgZmlsZm9ybWF0ZXQuIgpNQ0lFUlJfTk9fV0lORE9XLCAJCSJEZXQgZXIgaWtrZSBub2UgdmlzbmluZ3N2aW5kdS4iCk1DSUVSUl9DUkVBVEVXSU5ET1csIAkJIkt1bm5lIGlra2Ugb3BwcmV0dGUgZWxsZXIgYnJ1a2UgdmluZHUuIgpNQ0lFUlJfRklMRV9SRUFELCAJCSJLdW5uZSBpa2tlIGxlc2UgZGVuIG9wcGdpdHRlIGZpbGVuLiBLb250cm9sbGVyIGF0IGZpbGVuIGZvcnRzYXR0IGZpbm5lcywgb2cga29udHJvbGxlciBmb3JiaW5kZWxzZW4gdGlsIGRpc2tlbiBlbGxlciBuZXR0dmVya2V0LiIKTUNJRVJSX0ZJTEVfV1JJVEUsIAkJIkt1bm5lIGlra2Ugc2tyaXZlIHRpbCBkZW4gb3BwZ2l0dGUgZmlsZW4uIEtvbnRyb2xsZXIgYXQgZHUgaGFyIG5vayBsZWRpZyBkaXNrcGxhc3MsIG9nIGF0IGR1IGZvcnRzYXR0IGVyIHRpbGtvYmxldCBuZXR0dmVya2V0LiIKTUNJRVJSX1NFUV9ESVZfSU5DT01QQVRJQkxFLCAJIlRpZHNmb3JtYXRldCB0aWwgIiJzb25nIHBvaW50ZXIiIiBvZyAnU01QVEUnIGthbiBpa2tlIGJydWtlcyBzYW1tZW4uIgpNQ0lFUlJfU0VRX05PTUlESVBSRVNFTlQsIAkiU3lzdGVtZXQgaGFyIGlra2Ugbm9lbiBpbnN0YWxsZXJ0ZSBNSURJLWVuaGV0ZXIuIEJydWsgdmFsZ2V0ICdEcml2ZXJlJyBpIEtvbnRyb2xscGFuZWxldCBmb3Ig5SBpbnN0YWxsZXJlIGVuIE1JREktZHJpdmVyLiIKTUNJRVJSX1NFUV9QT1JUX0lOVVNFLCAJCSJEZW4gb3BwZ2l0dGUgTUlESS1wb3J0ZW4gZXIgYWxsZXJlZGUgaSBicnVrLiBWZW50IHRpbCBkZW4gZXIgbGVkaWcgb2cgcHL4diBpZ2plbi4iCk1DSUVSUl9TRVFfUE9SVF9NQVBOT0RFVklDRSwgCSJEZXQgZ2plbGRlbmRlIG9wcHNldHRldCBmb3IgTUlESS1rYXJ0bGVnZ2VyZW4gcmVmZXJlcmVyIHRpbCBlbiBNSURJLWVuaGV0IHNvbSBpa2tlIGVyIGluc3RhbGxlcnQgcOUgc3lzdGVtZXQuIEJydWsgdmFsZ2V0ICdNSURJLWthcnRsZWdnZXInIGkgS29udHJvbGxwYW5lbGV0IGZvciDlIGVuZHJlIG9wcHNldHRldC4iCk1DSUVSUl9TRVFfUE9SVF9NSVNDRVJST1IsIAkiRW4gZmVpbCBvcHBzdG9kIG1lZCBkZW4gb3BwZ2l0dGUgcG9ydGVuLi4iCk1DSUVSUl9TRVFfUE9SVF9OT05FWElTVEVOVCwgCSJEZW4gb3BwZ2l0dGUgTUlESS1lbmhldGVuIGVyIGlra2UgaW5zdGFsbGVydCBw5SBzeXN0ZW1ldC4gQnJ1ayB2YWxnZXQgJ0RyaXZlcmUnIGkgS29udHJvbGxwYW5lbGV0IGZvciDlIGluc3RhbGxlcmUgZW4gTUlESS1lbmhldC4iCk1DSUVSUl9TRVFfUE9SVFVOU1BFQ0lGSUVELCAJIlN5c3RlbWV0IGhhciBpa2tlIHNwZXNpZmlzZXJ0IGVuIGdqZWxkZW5kZSBNSURJLXBvcnQuIgpNQ0lFUlJfU0VRX1RJTUVSLCAJCSJBbGxlIG11bHRpbWVkaWF0aWR0YWtlcmUgYnJ1a2VzIGF2IGFuZHJlIHByb2dyYW1tZXIuIEF2c2x1dHQgZXR0IGF2IGRpc3NlIHByb2dyYW1tZW5lIG9nIHBy+HYgaWdqZW4uIgoKRU5ECg==