LyoKICogQ29weXJpZ2h0IDIwMDQgSGVubmluZyBHZXJoYXJkdAogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EKICovCgojaW5jbHVkZSAid2luZGVmLmgiCiNpbmNsdWRlICJtbWRkay5oIgoKU1RSSU5HVEFCTEUgTEFOR1VBR0UgTEFOR19HRVJNQU4sIFNVQkxBTkdfTkVVVFJBTApCRUdJTgoKLyogTU1TWVMgZXJyb3JzICovCk1NU1lTRVJSX05PRVJST1IsIAkJIkRlciBhbmdlZm9yZGVydGUgQmVmZWhsIHd1cmRlIGF1c2dlZvxocnQuIgpNTVNZU0VSUl9FUlJPUiwgCQkiVW5iZWthbm50ZXIgZXh0ZXJuZXIgRmVobGVyLiIKTU1TWVNFUlJfQkFEREVWSUNFSUQsIAkJIkRpZSBkZXJ6ZWl0IHZlcndlbmRldGUgR2Vy5HRla2VubnVuZyBpc3QgYXXfZXJoYWxiIGRlcyB6dWzkc3NpZ2VuIEJlcmVpY2hzIGb8ciBJaHIgU3lzdGVtLiIKTU1TWVNFUlJfTk9URU5BQkxFRCwgCQkiRGVyIFRyZWliZXIga29ubnRlIG5pY2h0IGdlc3RhcnRldCB3ZXJkZW4uIgpNTVNZU0VSUl9BTExPQ0FURUQsIAkJIkRhcyBHZXLkdCB3aXJkIGJlcmVpdHMgdmVyd2VuZGV0LiBXYXJ0ZW4gU2llLCBiaXMgZXMgZnJlaWdlZ2ViZW4gaXN0LCB1bmQgdmVyc3VjaGVuIFNpZSBlcyBlcm5ldXQuIgpNTVNZU0VSUl9JTlZBTEhBTkRMRSwgCQkiRGFzIGFuZ2VnZWJlbmRlIEdlcuR0ZWhhbmRsZSBpc3QgdW5n/Gx0aWcuIgpNTVNZU0VSUl9OT0RSSVZFUiwgCQkiRXMgaXN0IGtlaW4gVHJlaWJlciBhdWYgSWhyZW0gU3lzdGVtIGluc3RhbGxpZXJ0ICFcbiIKTU1TWVNFUlJfTk9NRU0sIAkJIk5pY2h0IGdlbvxnZW5kIFNwZWljaGVyIGb8ciBkaWVzZW4gQmVmZWhsLiBCZWVuZGVuIFNpZSBlaW5lIG9kZXIgbWVocmVyZSBBbndlbmR1bmdlbiwgdW5kIHZlcnN1Y2hlbiBTaWUgZXMgZXJuZXV0LiIKTU1TWVNFUlJfTk9UU1VQUE9SVEVELAkJIkRpZXNlIEZ1bmt0aW9uIHdpcmQgbmljaHQgdW50ZXJzdPx0enQuIEJlbnV0emVuIFNpZSBkaWUgRnVua3Rpb24gJ0NhcGFiaWxpdGllcycsIHVtIHp1IGVybWl0dGVsbiwgd2VsY2hlIEZ1bmt0aW9uIGRpZXNlciBUcmVpYmVyIHVudGVyc3T8dHp0LiIKTU1TWVNFUlJfQkFERVJSTlVNLCAJCSJEaWUgYW5nZWdlYmVuZSBGZWhsZXJudW1tZXIgaXN0IGb8ciBkaWVzZXMgU3lzdGVtIG5pY2h0IGRlZmluaWVydC4iCk1NU1lTRVJSX0lOVkFMRkxBRywgCQkiRWluIHVuZ/xsdGlnZXMgRmxhZyB3dXJkZSBhbiBlaW5lIFN5c3RlbWZ1bmt0aW9uIPxiZXJnZWJlbi4iCk1NU1lTRVJSX0lOVkFMUEFSQU0sIAkJIkVpbiB1bmf8bHRpZ2VyIFBhcmFtZXRlciB3dXJkZSBhbiBlaW5lIFN5c3RlbWZ1bmt0aW9uIPxiZXJnZWJlbi4iCgovKiBXQVZFIGVycm9ycyAqLwpXQVZFUlJfQkFERk9STUFULCAJCSJEaWVzZXMgRm9ybWF0IHdpcmQgbmljaHQgdW50ZXJzdPx0enQgb2RlciBrYW5uIG5pY2h0IPxiZXJzZXR6dCB3ZXJkZW4uIEJlbnV0emVuIFNpZSBkaWUgRnVua3Rpb24gJ0NhcGFiaWxpdGllcycsIHVtIGRpZSB1bnRlcnN0/HR6dGVuIEZvcm1hdGUgenUgZXJtaXR0ZWxuLiIKV0FWRVJSX1NUSUxMUExBWUlORywgCQkiRGllIEZ1bmt0aW9uIGthbm4gbmljaHQgZHVyY2hnZWb8aHJ0IHdlcmRlbiwgd2VubiBub2NoIE1lZGllbmRhdGVpZW4gd2llZGVyZ2VnZWJlbiB3ZXJkZW4uIFN0YXJ0ZW4gU2llIGRhcyBHZXLkdCBuZXUsIG9kZXIgd2FydGVuIFNpZSBiaXMga2VpbmUgRGF0ZW4gbWVociB3aWVkZXJnZWdlYmVuIHdlcmRlbi4iCldBVkVSUl9VTlBSRVBBUkVELCAJCSJEZXIgV0FWRSAtIEhlYWRlciB3dXJkZSBuaWNodCB2b3JiZXJlaXRldC4gQmVudXR6ZW4gU2llIGRpZSBGdW5rdGlvbiAnUHJlcGFyZScgenVtIFZvcmJlcmVpdGVuIGRlcyBIZWFkZXJzIHVuZCB2ZXJzdWNoZW4gU2llIGVzIGVybmV1dC4iCldBVkVSUl9TWU5DLCAJCQkiRGFzIEdlcuR0IGthbm4gbmljaHQgb2huZSBkYXMgV0FWRV9BTExPV1NZTkMgLSBGbGFnIGdl9mZmbmV0IHdlcmRlbi4gQmVudXR6ZW4gU2llIGRpZXNlcyBGbGFnIHVuZCB2ZXJzdWNoZW4gU2llIGVzIGVybmV1dC4iCgovKiBNSURJIGVycm9ycyAqLwpNSURJRVJSX1VOUFJFUEFSRUQsIAkJIkRlciBNSURJIC0gSGVhZGVyIHd1cmRlIG5pY2h0IHZvcmJlcmVpdGV0LiBCZW51dHplbiBTaWUgZGllIEZ1bmt0aW9uICdQcmVwYXJlJyB6dW0gVm9yYmVyZWl0ZW4gZGVzIEhlYWRlcnMgdW5kIHZlcnN1Y2hlbiBTaWUgZXMgZXJuZXV0LiIKTUlESUVSUl9TVElMTFBMQVlJTkcsIAkJIkRpZSBGdW5rdGlvbiBrYW5uIG5pY2h0IGR1cmNoZ2Vm/GhydCB3ZXJkZW4sIHdlbm4gbm9jaCBNZWRpZW5kYXRlaWVuIHdpZWRlcmdlZ2ViZW4gd2VyZGVuLiBTdGFydGVuIFNpZSBkYXMgR2Vy5HQgbmV1LCBvZGVyIHdhcnRlbiBTaWUgYmlzIGtlaW5lIERhdGVuIG1laHIgd2llZGVyZ2VnZWJlbiB3ZXJkZW4uIgpNSURJRVJSX05PTUFQLCAJCSJFcyB3dXJkZSBrZWluZSBNSURJIC0gTWFwIGdlZnVuZGVuLiBFcyBr9m5udGUgZWluIFByb2JsZW0gbWl0IGRlbSBUcmVpYmVyIGdlYmVuIG9kZXIgZGllIERhdGVpIE1JRElNQVAuQ0ZHIGZlaGx0IG9kZXIgaXN0IGJlc2No5GRpZ3QuIgpNSURJRVJSX05PVFJFQURZLCAJCSJEZXIgQW5zY2hsdXNzIGlzdCBtaXQgZGVyIERhdGVuYXVzZ2FiZSBiZWxlZ3QuIFdhcnRlbiBTaWUsIGJpcyBkaWUgRGF0ZW4g/GJlcnRyYWdlbiB3dXJkZW4gdW5kIHZlcnN1Y2hlbiBTaWUgZXMgZXJuZXV0LiIKTUlESUVSUl9OT0RFVklDRSwgCQkiRGFzIGdlZ2Vud+RydGlnZSBNSURJIC0gTWFwcGVyIFNldHVwIGJlbnV0enQgZWluIE1JREkgLSBHZXLkdCwgZGFzIG5pY2h0IGluc3RhbGxpZXJ0IGlzdC4gQmVudXR6ZW4gU2llIGRlbiBNSURJIC0gTWFwcGVyLCB1bSBkYXMgU2V0dXAgenUg5G5kZXJuLiIKTUlESUVSUl9JTlZBTElEU0VUVVAsIAkJIkRhcyBha3R1ZWxsZSBNSURJIFNldHVwIGlzdCBiZXNjaORkaWd0LiBLb3BpZXJlbiBzaWUgZGllIHVyc3By/G5nbGljaGUgRGF0ZWkgTUlESU1BUC5DRkcgaW5kIGRhcyBXaW5kb3dzIC0gU3lzdGVtdmVyemVpY2huaXMgdW5kIHZlcnN1Y2hlbiBTaWUgZXMgZXJuZXV0LiIKCi8qIE1DSSBlcnJvcnMgKi8KTUNJRVJSX0lOVkFMSURfREVWSUNFX0lELCAJIlVuZ/xsdGlnZSBNQ0kgLSBHZXLkdGVrZW5udW5nLiBCZW51dHplbiBTaWUgZGllIHp1cvxja2dlZ2ViZW5lIElELCB3ZW5uIFNpZSBkYXMgTUNJIC0gR2Vy5HQg9mZmbmVuLiIKTUNJRVJSX1VOUkVDT0dOSVpFRF9LRVlXT1JELCAJIkRlciBUcmVpYmVyIGthbm4gZGVuIGFuZ2VnZWJlbmVuIEJlZmVobHNwYXJhbWV0ZXIgbmljaHQgYW5lcmtlbm5lbi4iCk1DSUVSUl9VTlJFQ09HTklaRURfQ09NTUFORCwJIkRlciBUcmVpYmVyIGthbm4gZGVuIGFuZ2VnZWJlbmVuIEJlZmVobCBuaWNodCBhbmVya2VubmVuLiIKTUNJRVJSX0hBUkRXQVJFLCAJCSJFcyBnaWJ0IGVpbiBQcm9ibGVtIG1pdCBJaHJlbSBNZWRpYSAtIEdlcuR0LiBTdGVsbGVuIFNpZSBzaWNoZXIsIGRhc3MgZXMgcmljaHRpZyBhcmJlaXRldCBvZGVyIGZyYWdlbiBTaWUgZGVuIEdlcuR0ZWhlcnN0ZWxsZXIuIgpNQ0lFUlJfSU5WQUxJRF9ERVZJQ0VfTkFNRSwgCSJEYXMgYW5nZWdlYmVuZSBHZXLkdCBpc3QgbmljaHQgZ2X2ZmZuZXQgb2RlciB3aXJkIHZvbSBNQ0kgbmljaHQgZXJrYW5udC4iCk1DSUVSUl9PVVRfT0ZfTUVNT1JZLCAJCSJOaWNodCBnZW78Z2VuZCBTcGVpY2hlciBm/HIgZGVuIGFuZ2Vmb3JkZXJ0ZW4gVm9yZ2FuZy5cbkJlZW5kZW4gU2llIGVpbmUgb2RlciBtZWhyZXJlIEFud2VuZHVuZ2VuLCB1bmQgdmVyc3VjaGVuIFNpZSBlcyBlcm5ldXQuIgpNQ0lFUlJfREVWSUNFX09QRU4sIAkJIkRlciBHZXLkdGVuYW1lIHdpcmQgdm9uIGRpZXNlciBBbndlbmR1bmcgYmVyZWl0cyBhbHMgQWxpYXMgYmVudXR6dC4gQmVudXR6ZW4gU2llIGVpbmVuIGVpbmRldXRpZ2VuIEFsaWFzIgpNQ0lFUlJfQ0FOTk9UX0xPQURfRFJJVkVSLCAJIkVzIGdpYnQgZWluIHVuYmVrYW5udGVzIFByb2JsZW0gYmVpbSBMYWRlbiBkZXMgYW5nZWdlYmVuZW4gR2Vy5HRldHJlaWJlcnMuIgpNQ0lFUlJfTUlTU0lOR19DT01NQU5EX1NUUklORywgIktlaW4gQmVmZWhsIHd1cmRlIGFuZ2VnZWJlbi4iCk1DSUVSUl9QQVJBTV9PVkVSRkxPVywgCSJEaWUgQXVzZ2FiZXplaWNoZW5rZXR0ZSB3YXIgenUgbGFuZyBm/HIgZGVuIFL8Y2tnYWJlcHVmZmVyLiBFcmj2aGVuIFNpZSBkaWUgUHVmZmVyZ3L232UuIgpNQ0lFUlJfTUlTU0lOR19TVFJJTkdfQVJHVU1FTlQsICJEZXIgQmVmZWhsIGVyZm9yZGVydCBlaW5lbiBaZWljaGVua2V0dGVucGFyYW1ldGVyLiBCaXR0ZSBzdGVsbGVuIFNpZSBlaW5lbiBiZXJlaXQuIgpNQ0lFUlJfQkFEX0lOVEVHRVIsIAkJIkRpZSBBbmdhYmUgZWluZXIgZ2FuemVuIFphaGwgaXN0IGb8ciBkaWVzZW4gQmVmZWhsIHVuZ/xsdGlnLiIKTUNJRVJSX1BBUlNFUl9JTlRFUk5BTCwgCSJEZXIgR2Vy5HRldHJlaWJlciBoYXQgZWluZW4gdW5n/Gx0aWdlbiBS/GNrZ2FiZXdlcnQgZ2VsaWVmZXJ0LiBGcmFnZW4gU2llIGRlbiBHZXLkdGVoZXJzdGVsbGVyIG5hY2ggZWluZW0gbmV1ZW4gVHJlaWJlci4iCk1DSUVSUl9EUklWRVJfSU5URVJOQUwsIAkiRWluIFRyZWliZXJmZWhsZXIgaXN0IGF1ZmdldHJldGVuLiBGcmFnZW4gU2llIGRlbiBHZXLkdGVoZXJzdGVsbGVyIG5hY2ggZWluZW0gbmV1ZW4gVHJlaWJlci4iCk1DSUVSUl9NSVNTSU5HX1BBUkFNRVRFUiwgCSJEZXIgYW5nZWdlYmVuZSBCZWZlaGwgZXJmb3JkZXJ0IGVpbmVuIFBhcmFtZXRlci4gQml0dGUgZ2ViZW4gU2llIGVpbmVuIGFuLiIKTUNJRVJSX1VOU1VQUE9SVEVEX0ZVTkNUSU9OLCAJIkRhcyB2ZXJ3ZW5kZXRlIE1DSSAtIEdlcuR0IHVudGVyc3T8dHp0IGRpZXNlbiBCZWZlaGwgbmljaHQuIgpNQ0lFUlJfRklMRV9OT1RfRk9VTkQsIAkiRGllIGFuZ2Vmb3JkZXJ0ZSBEYXRlaSB3dXJkZSBuaWNodCBnZWZ1bmRlbi4gU3RlbGxlbiBTaWUgc2ljaGVyLCBkYXNzIFBmYWQtIHVuZCBEYXRlaW5hbWUgcmljaHRpZyBzaW5kLiIKTUNJRVJSX0RFVklDRV9OT1RfUkVBRFksIAkiRGVyIEdlcuR0ZXRyZWliZXIgaXN0IG5pY2h0IGJlcmVpdC4iCk1DSUVSUl9JTlRFUk5BTCwgCQkiRWluIEZlaGxlciBlcmVpZ25ldGUgc2ljaCBiZWltIFN0YXJ0ZW4gdm9uIE1DSS4gVmVyc3VjaGUgV2luZG93cyBuZXUgenUgc3RhcnRlbi4iCk1DSUVSUl9EUklWRVIsIAkJIkVzIGdpYnQgZWluIFByb2JsZW0gbWl0IGRlbSBHZXLkdGV0cmVpYmVyLiBEZXIgVHJlaWJlciB3aXJkIGdlc2NobG9zc2VuLiBFaW4gRmVobGVyIGthbm4gbmljaHQgZ2VtZWxkZXQgd2VyZGVuLiIKTUNJRVJSX0NBTk5PVF9VU0VfQUxMLCAJIkRlciBHZXLkdGVuYW1lICdhbGwnIGlzdCBuaWNodCBpbiBkaWVzZW0gQmVmZWhsIGVybGF1YnQuIgpNQ0lFUlJfTVVMVElQTEUsIAkJIkVzIHRyYXRlbiBGZWhsZXIgaW4gbWVociBhbHMgZWluZW0gR2Vy5HQgYXVmLiBHZWJlbiBTaWUgamVkZW4gQmVmZWhsIGb8ciBqZWRlcyBHZXLkdCBlaW56ZWxuIGFuLCB1bSB6dSBiZXN0aW1tZW4sIHdlbGNoZXMgR2Vy5HQgZGllIEZlaGxlciB2ZXJ1cnNhY2h0ZS4iCk1DSUVSUl9FWFRFTlNJT05fTk9UX0ZPVU5ELCAJIkthbm4ga2VpbmVuIEdlcuR0ZXR5cCBhdXMgZGVyIGFuZ2VnZWJlbmVuIERhdGVpbmFtZW5lcndlaXRlcnVuZyBlcm1pdHRlbG4uIgpNQ0lFUlJfT1VUT0ZSQU5HRSwgCQkiRGVyIGFuZ2VnZWJlbmUgUGFyYW1ldGVyIGxpZWd0IGF132VyaGFsYiBkZXMgenVs5HNzaWdlbiBCZXJlaWNocyBm/HIgZGllc2VuIEJlZmVobC4iCk1DSUVSUl9GTEFHU19OT1RfQ09NUEFUSUJMRSwgCSJEaWUgUGFyYW1ldGVyIGv2bm5lbiBuaWNodCB6dXNhbW1lbiB2ZXJ3ZW5kZXQgd2VyZGVuLiIKTUNJRVJSX0ZJTEVfTk9UX1NBVkVELCAJIkRpZSBEYXRlaSBrYW5uIG5pY2h0IGdlc3BlaWNoZXJ0IHdlcmRlbi4gU3RlbGxlbiBTaWUgc2ljaGVyLCBkYXNzIGdlbvxnZW5kIFBsYXR6IGF1ZiBkZW0gRGF0ZW50cuRnZXIgdmVyZvxnYmFyIGlzdCBvZGVyIElocmUgTmV0endlcmt2ZXJiaW5kdW5nIG5vY2ggYmVzdGVodC4iCk1DSUVSUl9ERVZJQ0VfVFlQRV9SRVFVSVJFRCwgCSJEYXMgYW5nZWdlYmVuZSBHZXLkdCB3dXJkZSBuaWNodCBnZWZ1bmRlbi4gU3RlbGxlbiBTaWUgc2ljaGVyLCBkYXNzIGVzIGluc3RhbGxpZXJ0IGlzdCBvZGVyIGRlciBHZXLkdGVuYW1lIHJpY2h0aWcgZ2VzY2hyaWViZW4gaXN0LiIKTUNJRVJSX0RFVklDRV9MT0NLRUQsIAkJIkRhcyBhbmdlZ2ViZW5lIEdlcuR0IHdpcmQgZ2VzY2hsb3NzZW4uIFdhcnRlbiBTaWUgZWluaWdlIFNla3VuZGVuLCB1bmQgdmVyc3VjaGVuIFNpZSBlcyBlcm5ldXQuIgpNQ0lFUlJfRFVQTElDQVRFX0FMSUFTLCAJIkRlciBhbmdlZ2ViZW5lIEFsaWFzIHdpcmQgdm9uIGRpZXNlciBBbndlbmR1bmcgYmVyZWl0cyB2ZXJ3ZW5kZXQuIFfkaGxlbiBTaWUgZWluZW4gZWluZGV1dGlnZW4gQWxpYXMuIgpNQ0lFUlJfQkFEX0NPTlNUQU5ULCAJCSJEZXIgYW5nZWdlYmVuZSBQYXJhbWV0ZXIgZvxyIGRpZXNlbiBCZWZlaGwgdW5n/Gx0aWcuIgpNQ0lFUlJfTVVTVF9VU0VfU0hBUkVBQkxFLCAJIkRhcyBHZXLkdCBpc3QgYmVyZWl0cyBnZfZmZm5ldC4gQmVudXR6ZW4gU2llIGRlbiAnc2hhcmVhYmxlJyAtIFBhcmFtZXRlciBiZWkgamVkZW0gJ29wZW4nIC0gQmVmZWhsLiIKTUNJRVJSX01JU1NJTkdfREVWSUNFX05BTUUsIAkiRGVyIGFuZ2VnZWJlbmUgQmVmZWhsIGVyZm9yZGVydCBlaW5lbiBBbGlhcy0sICBEYXRlaS0sIFRyZWliZXItIG9kZXIgR2Vy5HRlbmFtZW4uIEJpdHRlIGdlYmVuIFNpZSBlaW5lbiBhbi4iCk1DSUVSUl9CQURfVElNRV9GT1JNQVQsIAkiRGVyIGFuZ2VnZWJlbmUgV2VydCBm/HIgZGFzIFplaXRmb3JtYXQgaXN0IHVuZ/xsdGlnLiBMZXNlbiBTaWUgaW4gZGVyIE1DSSAtIERva3VtZW50YXRpb24gbmFjaCBn/Gx0aWdlbiBGb3JtYXRlbiBuYWNoLiIKTUNJRVJSX05PX0NMT1NJTkdfUVVPVEUsIAkiRWluIGFic2NobGll32VuZGVzIEFuZvxocnVuZ3N6ZWljaGVuIGZlaGx0IGltIFBhcmFtZXRlci4gQml0dGUgZ2ViZW4gU2llIGVpbnMgYW4uIgpNQ0lFUlJfRFVQTElDQVRFX0ZMQUdTLCAJIkVpbiBQYXJhbWV0ZXIgb2RlciBXZXJ0IHd1cmRlIHp3ZWltYWwgYW5nZWdlYmVuLiBHZWJlbiBTaWUgaW4gbnVyIGVpbnplbG4gYW4uIgpNQ0lFUlJfSU5WQUxJRF9GSUxFLCAJCSJEaWUgYW5nZWdlYmVuZSBEYXRlaSBrYW5uIGF1ZiBkZW0gTUNJIC0gR2Vy5HQgbmljaHQgd2llZGVyZ2VnZWJlbiB3ZXJkZW4uIERpZSBEYXRlaSBpc3Qgd2FocnNjaGVpbmxpY2ggYmVzY2jkZGlndCBvZGVyIGluIGVpbmVtIHVuZ/xsdGlnZW4gRm9ybWF0LiIKTUNJRVJSX05VTExfUEFSQU1FVEVSX0JMT0NLLCAJIkRlciBQYXJhbWV0ZXJibG9jaywgZGVyIHp1IE1DSSD8YmVyZ2ViZW4gd3VyZGUsIHdhciBOVUxMLiIKTUNJRVJSX1VOTkFNRURfUkVTT1VSQ0UsIAkiRXMga2FubiBrZWluZSB1bmJlbmFubnRlIERhdGVpIGdlc3BlaWNoZXJ0IHdlcmRlbi4gR2ViZW4gU2llIGVpbmVuIERhdGVpbmFtZW4gYW4uIgpNQ0lFUlJfTkVXX1JFUVVJUkVTX0FMSUFTLCAJIlNpZSBt/HNzZW4gZWluZW4gQWxpYXMgbWl0IGRlbSAnbmV3JyAtIFBhcmFtZXRlciBhbmdlYmVuLiIKTUNJRVJSX05PVElGWV9PTl9BVVRPX09QRU4sIAkiRGFzICdub3RpZnknIEZsYWcgaXN0IHVuenVs5HNzaWcgZvxyIHNlbGJzdPZmZm5lbmRlIEdlcuR0ZS4iCk1DSUVSUl9OT19FTEVNRU5UX0FMTE9XRUQsIAkiRWluIERhdGVpbmFtZSBrYW5uIG1pdCBkaWVzZW0gR2Vy5HQgbmljaHQgdmVyd2VuZGV0IHdlcmRlbi4iCk1DSUVSUl9OT05BUFBMSUNBQkxFX0ZVTkNUSU9OLCAiRGllIEJlZmVobGUgc2luZCBpbiBkZXIgYW5nZWdlYmVuZW4gUmVpaGVuZm9sZ2UgbmljaHQgYXVzZvxocmJhci4gxG5kZXJuIFNpZSBkaWUgUmVpaGVuZm9sZ2UsIHVuZCB2ZXJzdWNoZW4gU2llIGVzIGVybmV1dC4iCk1DSUVSUl9JTExFR0FMX0ZPUl9BVVRPX09QRU4sIAkiRGVyIEJlZmVobCBrYW5uIG5pY2h0IGF1ZiBlaW4gc2VsYnN09mZmbmVkZXMgR2Vy5HQgYW5nZXdhbmR0IHdlcmRlbi4gV2FydGVuIFNpZSwgYmlzIGRhcyBHZXLkdCBnZXNjaGxvc3NlbiB3dXJkZSB1bmQgdmVyc3VjaGVuIFNpZSBlcyBlcm5ldXQuIgpNQ0lFUlJfRklMRU5BTUVfUkVRVUlSRUQsIAkiRGVyIERhdGVpbmFtZSBpc3QgdW5n/Gx0aWcuIERlciBEYXRlaW5hbWUgbXVzcyBhdXMgbWF4aW1hbCA4IFplaWNoZW4sIGdlZm9sZ3Qgdm9uIGVpbmVtIFB1bmt0IHVuZCBlaW5lciBEYXRlaW5hbWVuZXJ3ZWl0ZXJ1bmcgYmVzdGVoZW4uIgpNQ0lFUlJfRVhUUkFfQ0hBUkFDVEVSUywgCSJadXPkdHpsaWNoZSBaZWljaGVuIG5hY2ggZWluZXIgWmVpY2hlbmtldHRlIG1pdCBBbmb8aHJ1bmdzemVpY2hlbiBzaW5kIG5pY2h0IGVybGF1YnQuIgpNQ0lFUlJfREVWSUNFX05PVF9JTlNUQUxMRUQsIAkiRGFzIGFuZ2VnZWJlbmUgR2Vy5HQgaXN0IG5pY2h0IGF1ZiBJaHJlbiBTeXN0ZW0gaW5zdGFsbGllcnQuIEJlbnV0emVuIFNpZSBkaWUgSGFyZHdhcmVlcmtlbm51bmcgaW4gZGVyIFN5c3RlbXN0ZXVlcnVuZywgdW0gZGFzIEdlcuR0IHp1IGluc3RhbGxpZXJlbi4iCk1DSUVSUl9HRVRfQ0QsIAkJIkF1ZiBkaWUgYW5nZWdlYmVuZSBEYXRlaSBvZGVyIGRhcyBNQ0kgLSBHZXLkdCBrYW5uIG5pY2h0IHp1Z2VncmlmZmVuIHdlcmRlbi4gVmVyc3VjaGVuIFNpZSwgZGFzIFZlcnplaWNobmlzIHp1IHdlY2hzZWxuIG9kZXIgZGFzIFN5c3RlbSBuZXUgenUgc3RhcnRlbi4iCk1DSUVSUl9TRVRfQ0QsIAkJIkF1ZiBkaWUgYW5nZWdlYmVuZSBEYXRlaSBvZGVyIGRhcyBNQ0kgLSBHZXLkdCBrYW5uIG5pY2h0IHp1Z2VncmlmZmVuIHdlcmRlbiwgd2VpbCBkaWUgQW53ZW5kdW5nIG5pY2h0IGRhcyBWZXJ6ZWljaG5pcyB3ZWNoc2VsbiBrYW5uLiIKTUNJRVJSX1NFVF9EUklWRSwgCQkiQXVmIGRpZSBhbmdlZ2ViZW5lIERhdGVpIG9kZXIgZGFzIE1DSSAtIEdlcuR0IGthbm4gbmljaHQgenVnZWdyaWZmZW4gd2VyZGVuLCB3ZWlsIGRpZSBBbndlbmR1bmcgbmljaHQgZGFzIExhdWZ3ZXJrIHdlY2hzZWxuIGthbm4uIgpNQ0lFUlJfREVWSUNFX0xFTkdUSCwgCQkiR2ViZW4gU2llIGVpbmVuIEdlcuR0ZS0gb2RlciBUcmVpYmVybmFtZW4gbWl0IHdlbmlnZXIgYWxzIDc5IFplaWNoZW4gYW4uIgpNQ0lFUlJfREVWSUNFX09SRF9MRU5HVEgsIAkiR2ViZW4gU2llIGVpbmVuIEdlcuR0ZS0gb2RlciBUcmVpYmVybmFtZW4gbWl0IHdlbmlnZXIgYWxzIDY5IFplaWNoZW4gYW4uIgpNQ0lFUlJfTk9fSU5URUdFUiwgCQkiRGVyIGFuZ2VnZWJlbmUgQmVmZWhsIGVyZm9yZGVydCBlaW5lbiBnYW56emFobGlnZW4gUGFyYW1ldGVyLiBCaXR0ZSBnZWJlbiBTaWUgZWluZW4gYW4uIgpNQ0lFUlJfV0FWRV9PVVRQVVRTSU5VU0UsIAkiQWxsZSBXYXZlZm9ybWdlcuR0ZSwgZGllIGRpZXNlIERhdGVpZW4gaW4gZGVtIGdlZ2Vud+RydGlnZW4gRm9ybWF0IHdpZWRlcmdlYmVuIGv2bm50ZW4sIHNpbmQgaW4gQmVudXR6dW5nLiBXYXJ0ZW4gU2llLCBiaXMgZWluIFdhdmVmb3JtZ2Vy5HQgZnJlaSBpc3QsIHVuZCB3aWVkZXJob2xlbiBTaWUgZGVuIFZvcmdhbmcuIgpNQ0lFUlJfV0FWRV9TRVRPVVRQVVRJTlVTRSwgCSJEYXMgZ2VnZW535HJ0aWdlIFdhdmVmb3JtZ2Vy5HQga2FubiBuaWNodCB3aWVkZXJnZWJlbiwgd2VpbCBlcyBnZXJhZGUgYmVudXR6dCB3aXJkLiBXYXJ0ZW4gU2llLCBiaXMgZGFzIEdlcuR0IGZyZWkgaXN0LCB1bmQgd2llZGVyaG9sZW4gU2llIGRlbiBWb3JnYW5nLiIKTUNJRVJSX1dBVkVfSU5QVVRTSU5VU0UsIAkiRXMgaXN0IGtlaW4gV2F2ZWZvcm1nZXLkdCBmcmVpLCBkYXMgZGFzIGdlZ2Vud+RydGlnZSBGb3JtYXQgYXVmemVpY2huZW4ga/ZubnRlLiBXYXJ0ZW4gU2llLCBiaXMgZWluIFdhdmVmb3JtZ2Vy5HQgZnJlaSBpc3QsIHVuZCB3aWVkZXJob2xlbiBTaWUgZGVuIFZvcmdhbmcuIgpNQ0lFUlJfV0FWRV9TRVRJTlBVVElOVVNFLCAJIkRhcyBnZWdlbnfkcnRpZ2UgV2F2ZWZvcm1nZXLkdCBrYW5uIG5pY2h0IGF1ZnplaWNobmVuLCB3ZWlsIGVzIGdlcmFkZSB2ZXJ3ZW5kZXQgd2lyZC4gV2FydGVuIFNpZSwgYmlzIGRhcyBHZXLkdCBmcmVpIGlzdCwgdW5kIHdpZWRlcmhvbGVuIFNpZSBkZW4gVm9yZ2FuZy4iCk1DSUVSUl9XQVZFX09VVFBVVFVOU1BFQ0lGSUVELAkiSmVkZXMga29tcGF0aWJsZSBXYXZlZm9ybSAtIFdpZWRlcmdhYmVnZXLkdCBrYW5uIHZlcndlbmRldCB3ZXJkZW4uIgpNQ0lFUlJfV0FWRV9JTlBVVFVOU1BFQ0lGSUVELCAJIkplZGVzIGtvbXBhdGlibGUgV2F2ZWZvcm0gLSBBdWZuYWhtZWdlcuR0IGthbm4gdmVyd2VuZGV0IHdlcmRlbi4iCk1DSUVSUl9XQVZFX09VVFBVVFNVTlNVSVRBQkxFLCAiRXMgaXN0IGtlaW4gV2F2ZWZvcm1nZXLkdCBpbnN0YWxsaWVydCwgZGFzIERhdGVpZW4gaW0gYWt0dWVsbGVuIEZvcm1hdCB3aWVkZXJnZWJlbiBrYW5uLiBCZW51dHplbiBTaWUgZGllIEhhcmR3YXJlZXJrZW5udW5nIGluIGRlciBTeXN0ZW1zdGV1ZXJ1bmcsIHVtIGVpbiBXYXZlZm9ybWdlcuR0IHp1IGluc3RhbGxpZXJlbi4iCk1DSUVSUl9XQVZFX1NFVE9VVFBVVFVOU1VJVEFCTEUsIkRhcyBXaWVkZXJnYWJlZ2Vy5HQgZXJrZW5udCBkYXMgZ2VnZW535HJ0aWdlIERhdGVpZm9ybWF0IG5pY2h0LiIKTUNJRVJSX1dBVkVfSU5QVVRTVU5TVUlUQUJMRSwgCSJFcyBpc3Qga2VpbiBXYXZlZm9ybWdlcuR0IGluc3RhbGxpZXJ0LCBkYXMgRGF0ZWllbiBpbSBha3R1ZWxsZW4gRm9ybWF0IGF1Zm5laG1lbiBrYW5uLiBCZW51dHplbiBTaWUgZGllIEhhcmR3YXJlZXJrZW5udW5nIGluIGRlciBTeXN0ZW1zdGV1ZXJ1bmcsIHVtIGVpbiBXYXZlZm9ybWdlcuR0IHp1IGluc3RhbGxpZXJlbi4iCk1DSUVSUl9XQVZFX1NFVElOUFVUVU5TVUlUQUJMRSwgIkRhcyBHZXLkdCwgbWl0IGRlbSBTaWUgYXVmemVpY2huZW4gbfZjaHRlbiwgZXJrZW5udCBkYXMgZ2VnZW535HJ0aWdlIERhdGVpZm9ybWF0IG5pY2h0LiIKTUNJRVJSX05PX1dJTkRPVywgCQkiRXMgZ2lidCBrZWluIEFuemVpZ2VmZW5zdGVyLiIKTUNJRVJSX0NSRUFURVdJTkRPVywgCQkiRmVuc3RlciBrb25udGUgbmljaHQgZXJ6ZXVndCBvZGVyIHZlcndlbmRldCB3ZXJkZW4uIgpNQ0lFUlJfRklMRV9SRUFELCAJCSJEaWUgRGF0ZWkga29ubnRlIG5pY2h0IGdlbGVzZW4gd2VyZGVuLiBTdGVsbGVuIFNpZSBzaWNoZXIsIGRhc3MgZGllIERhdGVpIGV4aXN0aWVydCBvZGVyIElocmUgTmV0endlcmt2ZXJiaW5kdW5nIG5vY2ggYmVzdGVodC4iCk1DSUVSUl9GSUxFX1dSSVRFLCAJCSJEaWUgRGF0ZWkga29ubnRlIG5pY2h0IGdlc2NocmllYmVuIHdlcmRlbi4gU3RlbGxlbiBTaWUgc2ljaGVyLCBkYXNzIGdlbvxnZW5kIFBsYXR6IGF1ZiBkZW0gRGF0ZW50cuRnZXIgdmVyZvxnYmFyIGlzdCwgb2RlciBkYXNzIGRpZSBOZXR6d2Vya3ZlcmJpbmR1bmcgbm9jaCBiZXN0ZWh0LiIKTUNJRVJSX1NFUV9ESVZfSU5DT01QQVRJQkxFLCAJIkRpZSBaZWl0Zm9ybWF0ZSB2b24gIiJzb25nIHBvaW50ZXIiIiB1bmQgU01QVEUgc2NobGllc3NlbiBzaWNoIGdlZ2Vuc2VpdGlnIGF1cy4gU2llIGv2bm5lbiBzaWUgbmljaHQgenVzYW1tZW4gdmVyd2VuZGVuLiIKTUNJRVJSX1NFUV9OT01JRElQUkVTRU5ULCAJIkVzIHNpbmQga2VpbmUgTUlESSAtIEdlcuR0ZSBhdWYgZGVtIFN5c3RlbSBpbnN0YWxsaWVydC4gQmVudXR6ZW4gU2llIGRpZSBIYXJkd2FyZWVya2VubnVuZyBpbiBkZXIgU3lzdGVtc3RldWVydW5nLCB1bSBlaW5lbiBNSURJIC0gVHJlaWJlciB6dSBpbnN0YWxsaWVyZW4uIgpNQ0lFUlJfU0VRX1BPUlRfSU5VU0UsIAkiRGVyIGFuZ2VnZWJlbmUgTUlESSAtIEFuc2NobHVzcyB3aXJkIGJlcmVpdHMgdmVyd2VuZGV0LiBXYXJ0ZW4gU2llIGJpcyBkZXIgQW5zY2hsdXNzIGZyZWkgaXN0LCB1bmQgdmVyc3VjaGVuIFNpZSBlcyBlcm5ldXQuIgpNQ0lFUlJfU0VRX1BPUlRfTUFQTk9ERVZJQ0UsIAkiRGFzIGdlZ2Vud+RydGlnZSBNSURJIC0gTWFwcGVyIFNldHVwIGJlbnV0enQgZWluIE1JREkgLSBHZXLkdCwgZGFzcyBuaWNodCBhdWYgSWhyZW4gU3lzdGVtIGluc3RhbGxpZXJ0IGlzdC4gQmVudXR6ZW4gU2llIGRlbiBNSURJIC0gTWFwcGVyIGluIGRlciBTeXN0ZW1zdGV1ZXJ1bmcsIHVtIGRhcyBTZXR1cCB6dSDkbmRlcm4uIgpNQ0lFUlJfU0VRX1BPUlRfTUlTQ0VSUk9SLCAJIkJlaW0gQmVudXR6ZW4gZGVzIGFuZ2VnZWJlbmVuIEFuc2NobHVzc2VzIHRyYXQgZWluIEZlaGxlciBhdWYuIgpNQ0lFUlJfU0VRX1BPUlRfTk9ORVhJU1RFTlQsIAkiRXMgc2luZCBrZWluZSBhbmdlZ2VibmVuIE1JREkgLSBHZXLkdGUgYXVmIGRlbSBTeXN0ZW0gaW5zdGFsbGllcnQuIEJlbnV0emVuIFNpZSBkaWUgSGFyZHdhcmVlcmtlbm51bmcgaW4gZGVyIFN5c3RlbXN0ZXVlcnVuZywgdW0gZWluIE1JREkgLSBHZXLkdCB6dSBpbnN0YWxsaWVyZW4uIgpNQ0lFUlJfU0VRX1BPUlRVTlNQRUNJRklFRCwgCSJFcyBnaWJ0IGtlaW5lbiBha3R1ZWxsZW4gTUlESSAtIEFuc2NobHVzcyBhdWYgZGVtIFN5c3RlbS4iCk1DSUVSUl9TRVFfVElNRVIsIAkJIkFsbGUgTXVsdGltZWRpYXplaXRnZWJlciB3ZXJkZW4gdm9uIGFuZGVyZW4gQW53ZW5kdW5nZW4gdmVyd2VuZGV0LiBCZWVuZGVuIFNpZSBlaW5lIGRpZXNlciBBbndlbmR1bmdlbiwgdW5kIHZlcnN1Y2hlbiBTaWUgZXMgZXJuZXV0LiIKCkVORAo=