LyoKICogV2luZSBjb21tYW5kIHByb21wdAogKiBHZXJtYW4gTGFuZ3VhZ2UgU3VwcG9ydAogKgogKiBDb3B5cmlnaHQgMjAwNCBIZW5uaW5nIEdlcmhhcmR0CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfR0VSTUFOLCBTVUJMQU5HX05FVVRSQUwKClNUUklOR1RBQkxFCnsKICBXQ01EX0FUVFJJQiwgIkhpbGZlIGb8ciBBVFRSSUJcbiIKICBXQ01EX0NBTEwsCiJDQUxMIDxCYXRjaGRhdGVpbmFtZT4gd2lyZCBpbiBlaW5lciBCYXRjaGRhdGVpIGdlbnV0enQsIHVtIEJlZmVobGUgYXVzXG5cCmVpbmVyIGFuZGVyZW4gQmF0Y2hkYXRlaSBhdXN6dWb8aHJlbi4gV2VubiBkaWUgQmF0Y2hkYXRlaSBleGlzaWVydCwga2VocnRcblwKZGllIEtvbnRyb2xsZSB6dSBkZXIgRGF0ZWkgenVy/GNrLCBkaWUgc2llIGdlcnVmZW4gaGF0LiBEZXIgQ0FMTCBCZWZlaGwga2FublxuXApQYXJhbWV0ZXIgenUgZGVyIHJ1ZmVuZGVuIFByb3plZHVyZSD8YmVydHJhZ2VuLlxuXApcblwKxG5kZXJ1bmdlbiBm/HIgZGFzIGFrdHVlbGxlIFZlcnplaWNobmlzLCBVbWdlYnVuZ3N2YXJpYWJsZW4gdXN3LiB3ZXJkZW4gaW5cblwKZGVyIGdlcnVmZW5lbiBQcm96ZWR1ciBnZW1hY2h0LCBkaWUgc2llIHZvbiBkZXIgYXVmZ2VydWZlbmVuIGdlZXJidCBoYXQuXG4iCgogIFdDTURfQ0QsICAgICAiSGlsZmUgZvxyIENEXG4iCiAgV0NNRF9DSERJUiwgICJIaWxmZSBm/HIgQ0hESVJcbiIKCiAgV0NNRF9DTFMsICAgICJDTFMgbPZzY2h0IGRlbiBJbmhhbHQgZGVyIEtvbnNvbGVcbiIKCiAgV0NNRF9DT1BZLCAgICJIaWxmZSBm/HIgQ09QWVxuIgogIFdDTURfQ1RUWSwgICAiSGlsZmUgZvxyIENUVFlcbiIKICBXQ01EX0RBVEUsICAgIkhpbGZlIGb8ciBEQVRFXG4iCiAgV0NNRF9ERUwsICAgICJIaWxmZSBm/HIgREVMXG4iCiAgV0NNRF9ESVIsICAgICJIaWxmZSBm/HIgRElSXG4iCgogIFdDTURfRUNITywKIkVDSE8gPFplaWNoZW5rZXR0ZT4gemVpZ3QgZGllIDxaZWljaGVua2V0dGU+IGF1ZiBkZW0gYWt0dWVsbGVuIFRlcm1pbmFsZ2Vy5HQuXG5cClxuXApFQ0hPIE9OIGJld2lya3QsIGRhc3MgYWxsZSBuYWNoZm9sZ2VuZGVuIEJlZmVobGUgaW4gZWluZXIgQmF0Y2hkYXRlaSB6dWVyc3RcblwKYXVmIGRlbSBUZXJtaW5hbGdlcuR0IGFuZ2V6ZWlndCB1bmQgZGFuYWNoIGF1c2dlZvxocnQgd2VyZGVuLlxuXApcblwKRUNITyBPRkYga2VocnQgZGVuIEVmZmVrdCBkZXMgdm9yaGVyaWdlbiBFQ0hPIE9OIChFQ0hPIGlzdCBzdGFuZGFyZG3kc3NpZ1xuXAphdWYgT0ZGKSB1bS4gVW0gZGVuIEVDSE8gT0ZGIEJlZmVobCBuaWNodCBhbnplaWdlbiB6dSBsYXNzZW4sIGthbm4gdm9yIGRlc3NlblxuXAplaW4gQCBaZWljaGVuIGdlc2V0enQgd2VyZGVuLlxuIgoKICBXQ01EX0VSQVNFLCAgIkhpbGZlIGb8ciBFUkFTRVxuIgoKICBXQ01EX0ZPUiwKIkRlciBGT1IgQmVmZWhsIHdpcmQgZ2VudXR6dCwgdW0gZWluZW4gQmVmZWhsIGb8ciBlaW5lIE1lbmdlIHZvbiBEYXRlaWVuXG5cCmVpbnplbG4gYXVzenVm/GhyZW4uXG5cClxuXApTeW50YXg6IEZPUiAlVmFyaWFibGUgSU4gKHNldCkgRE8gQmVmZWhsXG5cClxuXApEaWUgQW5mb3JkZXJ1bmcgZGFzICUgWmVpY2hlbiB6dSB2ZXJkb3BwZWxuLCBzb2JhbGQgRk9SIGluIGVpbmVyIEJhdGNoZGF0ZWlcblwKYmVudXR6dCB3aXJkLCBleGlzdGllcnQgaW0gQ01EIG5pY2h0LlxuIgoKICBXQ01EX0dPVE8sCiJEZXIgR09UTyBCZWZlaGwgdHJhbnNmZXJpZXJ0IGRpZSBBdXNm/GhydW5nIHp1IGVpbmVyIGFuZGVyZW4gU3RlbGxlIGluIGVpbmVyXG5cCkJhdGNoZGF0ZWkuXG5cClxuXApEaWUgQmV6ZWljaG51bmcsIGRpZSBkYXMgWmllbCBlaW5lcyBHT1RPJ3MgaXN0LCBrYW5uIGJpcyB6dSAyNTUgWmVpY2hlbiBsYW5nXG5cCnNlaW4sIGRhcmYgYWJlciBrZWluZSBMZWVyemVpY2hlbiBlbnRoYWt0ZW4gKGRpZXMgaXN0IGRlciBVbnRlcnNjaGllZCB6dVxuXAphbmRlcmVuIEJldHJpZWJzc3lzdGVtZW4pLiBXZW5uIHp3ZWkgb2RlciBtZWhyIGlkZW50aXNjaGUgQmV6ZWljaG51bmdlbiBpblxuXAplaW5lciBCYXRjaGRhdGVpIGV4aXN0aWVyZW4sIGRhbm4gd2lyZCBpbW1lciB6dSBkZXIgZXJzdGVuIEJlemVpY2hudW5nXG5cCmdlc3BydW5nZW4uIFZlcnN1Y2h0IEdPVE8genUgZWluZXIgbmljaHQgdm9yaGFuZGVuIEJlemVpY2hudW5nIHp1IHNwcmluZ2VuLFxuXApiZWVuZGV0IHNpY2ggZGllIEF1c2b8aHJ1bmcgZGVyIEJhdGNoZGF0ZWkuXG5cClxuXApHT1RPIGhhdCBrZWluZSBBdXN3aXJrdW5nZW4sIHdlbm4gZXMgaW50ZXJha3RpdiBnZW51dHp0IHdpcmQuXG4iCgogIFdDTURfSEVMUCwgICAiSGlsZmUgZvxyIEhFTFBcbiIKCiAgV0NNRF9JRiwKIklGIHdpcmQgYmVudXR6dCwgdW0gZWluZW4gQmVmZWhsIGJlZGluZ3QgYXVzenVm/GhyZW4uXG5cClxuXApTeW50YXg6CUlGIFtOT1RdIEVYSVNUIERhdGVpbmFtZSBCZWZlaGxcblwKCUlGIFtOT1RdIFplaWNoZW5rZXR0ZTE9PVplaWNoZW5rZXR0ZTIgQmVmZWhsXG5cCglJRiBbTk9UXSBFUlJPUkxFVkVMIE51bW1lciBCZWZlaGxcblwKXG5cCkluIGRlciB6d2VpdGVuIEZvcm0gZGVzIEJlZmVobHMsIG38c3NlbiBkaWUgYmVpZGVuIFplaWNoZW5rZXR0ZW4gaW4gZG9wcGVsdGVuXG5cCkFuZvxocnVuZ3N6ZWljaGVuIHN0ZWhlbi4gRGVyIFZlcmdsZWljaCBhY2h0ZXQgbmljaHQgYXVmIGRpZSBHcm/fLSB1bmRcblwKS2xlaW5zY2hyZWlidW5nLlxuIgoKICBXQ01EX0xBQkVMLCAgCiJMQUJFTCB3aXJkIGJlbnV0enQsIHVtIGRpZSBMYXVmd2Vya3NiZXplaWNobnVuZyBmZXN0enVsZWdlbi5cblwKXG5cClN5bnRheDogTEFCRUwgW0xhdWZ3ZXJrOl1cblwKXG5cCkRlciBCZWZlaGwgd2FydGV0IGF1ZiBkaWUgRWluZ2FiZSBlaW5lciBuZXVlbiBCZXplaWNobnVuZyBm/HIgZGFzIGFuZ2VnZWJlbmVcblwKTGF1ZndlcmsuIFNpZSBr9m5uZW4gc2ljaCBhdWNoIGRpZSBMYXVmd2Vya3NiZXplaWNudW5nIG1pdCBkZW0gVk9MIC0gQmVmZWhsXG5cCmFuemVpZ2VuIGxhc3Nlbi5cbiIKCiAgV0NNRF9NRCwgICAgICJIaWxmZSBm/HIgTURcbiIKICBXQ01EX01LRElSLCAgIkhpbGZlIGb8ciBNS0RJUlxuIgogIFdDTURfTU9WRSwKIk1PVkUgdmVyc2NoaWVidCBlaW5lIERhdGVpIG9kZXIgZWluIFZlcnplaWNobmlzIHp1IGVpbmVtIG5ldWVuIFB1bmt0IGltXG5cCkRhdGVpc3lzdGVtLlxuXApcblwKSXN0IGRhcyB6dSB2ZXJzY2hpZWJlbmRlIE9iamVrdCBlaW4gVmVyemVpY2huaXMsIGRhbm4gd2VyZGVuIGFsbGUgRGF0ZWllbiB1bmRcblwKVW50ZXJ2ZXJ6ZWljaG5pc3NlIHVudGVyaGFsYiBkZXMgT2JqZWt0ZXMgZ2VuYXVzbyB2ZXJzY2hvYmVuLlxuXApcblwKTU9WRSBzY2hs5Gd0IGZlaGwsIHdlbm4gZGllIGFsdGUgdW5kIGRpZSBuZXVlIFBvc2l0aW9uIGF1ZiB2ZXJzY2hpZWRlbmVuIERPU1xuXApMYXVmd2Vya2VuIHNpbmQuXG4iCgogIFdDTURfUEFUSCwKIlBBVEgg5G5kZXJ0IG9kZXIgemVpZ3QgZGVuIENNRCBTdWNocGZhZCBhbi5cblwKXG5cCk5hY2ggZGVyIEVpbmdhYmUgdm9uIFBBVEgsIHdpcmQgZGllIGFrdHVlbGxlIFBBVEggRWluc3RlbGx1bmcgYW5nZXplaWd0XG5cCihuYWNoIGRlbSBTdGFydCB3aXJkIGRlciBXZXJ0IGF1cyBkZXIgd2luZS5jb25mIERhdGVpIGdlbm9tbWVuKS4gVW0gZGllXG5cCkVpbnN0ZWxsdW5nZW4genUg5G5kZXJuLCBtdXNzIG5hY2ggZGVtIFBBVEggQmVmZWhsIGRlciBuZXVlIFdlcnQgYW5nZWdlYmVuXG5cCndlcmRlblxuXApcblwKRXMgaXN0IGF1Y2ggbfZnbGljaCBkZW4gUEFUSCBtaXQgSGlsZmUgZGVyIFBBVEggVW1nZWJ1bmdzdmFyaWFibGUgenVcblwKbW9kaWZpemllcmVuLiBadW0gQmVpc3BpZWw6XG5cCgkJUEFUSCAlUEFUSCU7YzpcXHRlbXBcbiIKCiAgV0NNRF9QQVVTRSwKIlBBVVNFIGzkc3N0IGVpbmUgTWVsZHVuZyBhdWYgZGVtIEJpbGRzY2hpcm0gZXJzY2hlaW5lblxuXAonRHL8Y2tlbiBTaWUgZGllIEVpbmdhYmV0YXN0ZSB1bSBmb3J0enVmYWhyZW4nIHVuZCB3YXJ0ZXQgZGFyYXVmLCBkYXNzIGRlclxuXApCZW51dHplciBkaWUgRWluZ2FiZXRhc3RlL0VudGVyLVRhc3RlIGRy/GNrdC4gRXMgd2lyZCBoYXVwdHPkY2hsaWNoIGluXG5cCkJhdGNoZGF0ZWllbiBnZW51dHp0LCB1bSBkZW0gQmV1dHplciB6dSBlcmxhdWJlbiwgZGllIEF1c2dhYmUgZWluZXMgdm9yaGVyaWdlblxuXApCZWZlaGxzIHp1IGxlc2VuLCBiZXZvciBlcyBkdXJjaCBTY3JvbGxlbiB2b20gQmlsZHNjaGlybSB2ZXJzY2h3aW5kZXQuXG4iCgogIFdDTURfUFJPTVBULAoiUFJPTVBUIHNldHp0IGRlbiBCZWZlaGxzemVpbGVucHJvbXB0LlxuXApcblwKRGllIFplaWNoZW5rZXR0ZSwgZGllIGRlbSBQUk9NUFQgQmVmZWhsIGZvbGd0ICh1bmQgZGVtIExlZXJ6ZWljaGVuXG5cCnVubWl0dGVsYmFyIGRhbmFjaCksIGVyc2NoZWludCBhbSBaZWlsZW5hbmZhbmcsIHdlbm4gQ01EIGF1ZiBkaWUgRWluZ2FiZVxuXAp3YXJ0ZXQuXG5cClxuXApEaWUgbmFjaGZvbGdlbmRlbiBaZWljaGVuIGhhYmVuIGVpbmUgYmVzb25kZXJlIEJlZGV1dHVuZzpcblwKXG5cCiQkICAgIERvbGxhcnplaWNoZW4gICAgICAgJF8gICAgWmVpbGVudm9yc2NodWIgICAgICAkYiAgICBQaXBlIFplaWNoZW4gKHwpXG5cCiRkICAgIGFrdHVlbGxlcyBEYXR1bSAgICAgJGUgICAgRXNjYXBlICAgICAgICAgICAgICAkZyAgICA+IFplaWNoZW5cblwKJGwgICAgPCBaZWljaGVuICAgICAgICAgICAkbiAgICBha3V0ZWxsZXMgTGF1ZndlcmsgICRwICAgIGFrdHVlbGxlciBQZmFkXG5cCiRxICAgIEdsZWljaGhlaXRzemVpY2hlbiAgJHQgICAgYWt0dWVsbGUgWmVpdCAgICAgICAkdiAgICBjbWQgVmVyc2lvblxuXApcblwKSGlud2VpczogRGllIEVpbmdhYmUgZGVzIFBST01QVCBCZWZlaGxzIG9obmUgZWluZSBQcm9tcHQtWmVpY2hlbmtldHRlLCBzZXR6dFxuXApkZW4gUHJvbXB0IHp1IGRlbiBTdGFuZGFyZHdlcnQgenVy/GNrLCB3YXMgZGFzIGFrdHVlbGxlIFZlcnplaWNobmlzIChpbmtsdXNpdmVcblwKZGVtIGFrdHVlbGxlbiBMYXVmd2Vya3NidWNoc3RhYmVuKSBnZWZvbGd0IHZvbiBlaW5lbiBHcvbfZXJ6ZWljaGVuICg+KVxuXAooZ2VuYXUgd2llIGRlciBQUk9NUFQgJHAkZyBCZWZlaGwpLlxuXApcblwKRGVyIFByb21wdCBrYW5uIGF1Y2ggZ2XkbmRlcnQgd2VyZGVuIGR1cmNoIGRhcyDEbmRlcm4gZGVyIFBST01QVFxuXApVbWdlYnVuZ3N2YXJpYWJsZSwgc28gaGF0IGRlciBCZWZlaGwgJ1NFVCBQUk9NUFQ9dGV4dCcgZGllIGdsZWljaGUgQXVzd2lya3VuZ1xuXAp3aWUgJ1BST01QVCB0ZXh0Jy5cbiIKCiAgV0NNRF9SRU0sCiJCZWdpbm50IGVpbmUgQmVmZWhsc3plaWxlIG1pdCBSRU0gKGdlZm9sZ3Qgdm9uIGVpbmVtIExlZXJ6ZWljaGVuKSwgd2lyZFxuXAprZWluZSBBa3Rpb24gYXVzZ2Vm/GhydCB1bmQga2FubiBkZXNoYWxiIGF1Y2ggYWxzIEtvbW1lbnRhciBpbiBlaW5lclxuXApCYXRjaGRhdGVpIGdlbnV0enQgd2VyZGVuLlxuIgoKICBXQ01EX1JFTiwgICAgIkhpbGZlIGb8ciBSRU5cbiIKICBXQ01EX1JFTkFNRSwgIkhpbGZlIGb8ciBSRU5BTUVcbiIKICBXQ01EX1JELCAgICAgIkhpbGZlIGb8ciBSRFxuIgogIFdDTURfUk1ESVIsICAiSGlsZmUgZvxyIFJNRElSXG4iCgogIFdDTURfU0VULAoiU0VUIORuZGVydCBvZGVyIHplaWd0IGRpZSBDTUQgVW1nZWJ1bmdzdmFyaWFibGVuIGFuLlxuXApcblwKU0VUIG9obmUgUGFyYW1ldGVyIHplaWd0IGFsbGUgYWt0dWVsbGVuIFVtZ2VidW5nc3ZhcmlhYmxlbiBhbi5cblwKXG5cClVtIGVpbmUgVW1nZWJ1bmdzdmFyaWFibGUgenUgZXJzY2hhZmZlbiBvZGVyIHp1IORuZGVybiwgaXN0IGRlciBTeW50YXggbvZ0aWc6XG5cClxuXAogICAgICBTRVQgPFZhcmlhYmxlPj08V2VydD5cblwKXG5cCldvYmVpIDxWYXJpYWJsZT4gdW5kIDxXZXJ0PiBaZWljaGVua2V0dGUgc2luZC4gRXMgbfxzc2VuIGtlaW5lIExlZXJ6ZWljaGVuIHZvclxuXApkZW0gR2xlaWNoaGVpdHN6ZWljaGVuIHNlaW4sIG5vY2ggbXVzcyBkZXIgVmFyaWFibGVubmFtZSBpbiBBbmb8aHJ1bmdzemVpY2hlblxuXAplaW5nZXNjaGxvc3NlbiBzZWluLlxuXApcblwKSW4gV2luZSB3ZXJkZW4gZGllIFVtZ2VidW5nc3ZhcmlhYmxlbiBkZXMgZGFydW50ZXJsaWVnZW5kZW4gQmV0cmllYnNzeXN0ZW1zXG5cCm1pdCBpbiBkaWUgV2luMzIgVW1nZWJ1bmcgZWluZ2VidW5kZW4sIGRlc2hhbGIgZ2lidCBlcyBnZXf2aG5saWNoIG1laHIgV2VydGVcblwKYWxzIGVzIHNpZSBpbiBlaW5lciB1cnNwcvxuZ2xpY2hlbiBXaW4zMiBSZWFsaXNpZXJ1bmcgZ+RiZS4gQW5tZXJrdW5nOiBFcyBpc3RcblwKbmljaHQgbfZnbGljaCBkaWUgVW1nZWJ1bmdzdmFyaWFibGVuIGRlcyBCZXRyaWVic3N5c3RlbXMgdm9tIENNRCBhdXMgenVcblwKYmVlaW5mbHVzc2VuLlxuIgoKICBXQ01EX1NISUZULAoiU0hJRlQgd2lyZCBpbiBlaW5lciBCYXRjaGRhdGVpIGdlbnV0enQsIHVtIGVpbmVuIFBhcmFtZXRlciB2b20gQW5mYW5nIGRlclxuXApMaXN0ZSB6dSBlbnRmZXJuZW4sIHNvIGRhcyBkZXIgUGFyYW1ldGVyIDIgenUgUGFyYW1ldGVyIDEgd2lyZCB1bmQgc28gd2VpdGVyLlxuXApFcyBoYXQga2VpbmUgQXVzd2lya3VuZ2VuLCB3ZW5uIGVzIHZvbiBkZXIgQmVmZWhsc3plaWxlIGdlcnVmZW4gd2lyZC5cbiIKCiAgV0NNRF9USU1FLCAgICJIaWxmZSBm/HIgVElNRVxuIgoKICBXQ01EX1RJVExFLAoiU2V0enQgZGVuIEZlbnN0ZXJ0aXRlbCBm/HIgZGFzIENNRCAtIEZlbnN0ZXIuXG5cClxuXApTeW50YXg6IFRJVExFIFtaZWljaGVua2V0dGVdXG4iCgogIFdDTURfVFlQRSwKIlRZUEUgPERhdGVpPiBrb3BpZXJ0IDxEYXRlaT4genUgZGVtIEtvbnNvbGVuZ2Vy5HQgKG9kZXIgZG9ydGhpbiwgd29oaW5cblwKZGllcyB1bWdlbGVpdGV0IHd1cmRlKS4gRXMgd2lyZCBrZWluZSDcYmVycHL8ZnVuZyB2b3JnZW5vbW1lbiwgb2IgZGllXG5cCkRhdGVpIGxlc2JhcmVyIFRleHQgaXN0LlxuIgoKICBXQ01EX1ZFUklGWSwKIlZFUklGWSB3aXJkIGJlbnV0enQsIHVtIGRhcyBWZXJpZnkgRmxhZyB6dSBzZXR6ZW4sIHp1IGz2c2NoZW4gb2RlciB6dVxuXAp0ZXN0ZW4uIEf8bHRpZ2UgRWluZ2FiZW4gc2luZDpcblwKXG5cClZFUklGWSBPTglTZXR6dCBkYXMgRmxhZ1xuXApWRVJJRlkgT0ZGCUz2c2NodCBkYXMgRmxhZ1xuXApWRVJJRlkJCVplaWd0IGFuLCBvYiBPTiBvZGVyIE9GRiB2ZXJ3ZW5kZXQgd2lyZC5cblwKXG5cCkRhcyBWZXJpZnkgRmxhZyBoYXQga2VpbmUgRnVua3Rpb24gaW4gV2luZS5cbiIKCiAgV0NNRF9WRVIsCiJWRVIgemVpZ3QgZGllIGFrdHVlbGxlIFZlcnNpb24gdm9uIENNRCBhbi5cbiIKCiAgV0NNRF9WT0wsICAgICJIaWxmZSBm/HIgVk9MXG4iCgogIFdDTURfUFVTSEQsICAiUFVTSEQgPFZlcnplaWNobmlzbmFtZT4gc3BlaWNoZXJ0IGRhcyBha3R1ZWxsZVxuXApWZXJ6ZWljaG5pcyBhdWYgZWluZW0gU3RhY2sgdW5kIHdlY2hlc2VsdCBkYXMgQXJiZWl0c3ZlcnplaWNobmlzXG5cCnp1IGRlbSBhbmdlZ2ViZW5lbi5cbiIKCiAgV0NNRF9QT1BELCAgICJQT1BEIHdlY2hzZWx0IGRhcyBBcmJlaXRzdmVyemVpY2huaXMgenUgZGVtIHp1bGV0enRcblwKbWl0IFBVU0hEIGdlc3BlaWNoZXJ0ZW4uXG4iCgogIFdDTURfTU9SRSwgICAiTU9SRSBkaXNwbGF5cyBvdXRwdXQgb2YgZmlsZXMgb3IgcGlwZWQgaW5wdXQgaW4gcGFnZXMuXG4iCgogIFdDTURfRVhJVCwKIkVYSVQgYmVlbmRldCBkaWUgYWt0dWVsbGUgQmVmZWhsc3NpdHp1bmcgdW5kIGtlaHJ0IHp1bVxuXApCZXRyaWVic3N5c3RlbSBvZGVyIGRlciBTaGVsbCB6dXL8Y2ssIHZvbiBkZXIgQ01EIGdlc3RhcnQgd3VyZGUuXG4iCgoKICBXQ01EX0FMTEhFTFAsICJDTUQgZWluZ2ViYXV0ZW4gQmVmZWhsZSBzaW5kOlxuXApBVFRSSUJcdFx0WmVpZ3QgYW4gb2RlciDkbmRlcnQgZGllIERPUyBEYXRlaWVpZ2Vuc2NoYWZ0ZW5cblwKQ0FMTFx0XHRSdWZ0IGVpbmUgQmF0Y2gtRGF0ZWkgaW5uZXJoYWxiIGVpbmVyIGFuZGVyZW4gYXVmXG5cCkNEIChDSERJUilcdFdlY2hzZWx0IGluIGRhcyBWZXJ6ZWljaG5pc1xuXApDTFNcdFx0TPZzY2h0IGRlbiBJbmhhbHQgZGVyIEtvbnNvbGVcblwKQ09QWVx0XHRLb3BpZXJ0IGVpbmUgRGF0ZWlcblwKQ1RUWVx0XHTEbmRlcnQgZGFzIEVpbmdhYmUvQXVzZ2FiZSAtIEdlcuR0XG5cCkRBVEVcdFx0WmVpZ3QgYW4gb2RlciDkbmRlcnQgZGFzIFN5c3RlbWRhdHVtXG5cCkRFTCAoRVJBU0UpXHRM9nNjaHQgZWluZSBvZGVyIG1laHJlcmUgRGF0ZWllblxuXApESVJcdFx0TGlzdGV0IGRlbiBJbmhhbHQgZWluZXMgVmVyemVpY2huaXNzZXNcblwKRUNIT1x0XHRLb3BpZXJ0IGRlbiBUZXh0IGRpcmVrdCB6dXIgS29uc29sZW5hdXNnYWJlXG5cCkhFTFBcdFx0WmVpZ3QgZGV0YWxpZXJ0ZSBJbmZvcm1hdGlvbmVuIHp1IGVpbmVuIFRoZW1hXG5cCk1EIChNS0RJUilcdEVyemV1Z3QgZWluIFVudGVydmVyemVpY2huaXNcblwKTU9SRVx0XHRaZWlndCBkaWUgQXVzZ2FiZSBzZWl0ZW53ZWlzZSBhblxuXApNT1ZFXHRcdEJld2VndCBlaW5lIG9kZXIgbWVocmVyZSBEYXRlaWVuIG9kZXIgZWluZW4gVmVyemVpY2huaXNiYXVtXG5cClBBVEhcdFx0U2V0enQgb2RlciB6ZWlndCBkZW4gU3VjaHBmYWQgYW5cblwKUFJPTVBUXHRcdMRuZGVydCBkZW4gQmVmZWhsc3plaWxlbnByb21wdFxuXApSRU4gKFJFTkFNRSlcdEJlbmVubnQgZWluZSBEYXRlaSB1bVxuXApSRCAoUk1ESVIpXHRM9nNjaHQgZWluIFVudGVydmVyemVpY2huaXNcblwKU0VUXHRcdFNldHp0IG9kZXIgemVpZ3QgZGllIFVtZ2VidW5nc3ZhcmlhYmxlbiBhblxuXApUSU1FXHRcdFNldHp0IG9kZXIgemVpZ3QgZGllIGFrdHVlbGxlIFN5c3RlbXplaXQgYW5cblwKVElUTEVcdFx0U2V0enQgZGVuIEZlbnN0ZXJ0aXRlbCBm/HIgZGllIENNRCAtIFNpdHp1bmdcblwKVFlQRVx0XHRHaWJ0IGRlbiBJbmhhbHQgZWluZXIgVGV4dGRhdGVpIGF1c1xuXApWRVJcdFx0WmVpZ3QgZGllIGFrdHVlbGxlIFZlcnNpb24gdm9uIENNRCBhblxuXApWT0xcdFx0WmVpZ3QgZGllIEJlemVpY2hudW5nIGVpbmVzIExhdWZ3ZXJrZXMgYW5cblwKRVhJVFx0XHRCZWVuZGV0IGRlbiBDTURcblxuXApHZWJlbiBTaWUgSEVMUCA8QmVmZWhsPiBlaW4sIGRhbWl0IFNpZSB3ZWl0ZXJlIEluZm9ybWF0aW9uZW4gZvxyIGVpbmVuIGRlclxuXApvYmlnZW4gQmVmZWhsZSBlcmhhbHRlbi5cbiIKCiAgV0NNRF9DT05GSVJNLCAiU2luZCBzaWUgc2ljaGVyIgogIFdDTURfWUVTLCAiSiIKICBXQ01EX05PLCAiTiIKICBXQ01EX05PQVNTT0MsICJWZXJrbvxwZnVuZyBm/HIgRGF0ZWllbmR1bmcgJXMgZmVobHRcbiIKICBXQ01EX05PRlRZUEUsICJLZWluIEJlZmVobCB6dW0g1mZmbmVuIGb8ciBEYXRlaXR5cCAnJXMnXG4iCiAgV0NNRF9PVkVSV1JJVEUsICIlcyD8YmVyc2NocmVpYmVuIgogIFdDTURfTU9SRVNUUiwgIk1laHIuLi4iCiAgV0NNRF9UUlVOQ0FURURMSU5FLCAiRGllIFplaWxlIGJlaSBkZXIgQmF0Y2h2ZXJhcmJlaXR1bmcgaXN0IG32Z2xpY2hlcndlaXNlIGFiZ2VzY2huaXR0ZW4uIEJlbnV0emU6XG4iCiAgV0NNRF9OWUksICJOb2NoIG5pY2h0IGltcGxlbWVudGllcnRcblxuIgogIFdDTURfTk9BUkcsICJBcmd1bWVudCBmZWhsdFxuIgogIFdDTURfU1lOVEFYRVJSLCAiU3ludGF4ZmVobGVyXG4iCiAgV0NNRF9GSUxFTk9URk9VTkQsICIlcyA6IERhdGVpIG5pY2h0IGdlZnVuZGVuXG4iCiAgV0NNRF9OT0NNREhFTFAsICJIaWxmZSBm/HIgJXMgaXN0IG5pY2h0IHZlcmb8Z2JhclxuIgogIFdDTURfTk9UQVJHRVQsICJEYXMgU3BydW5nemllbCB2b24gR09UTyB3dXJkZSBuaWNodCBnZWZ1bmRlblxuIgogIFdDTURfQ1VSUkVOVERBVEUsICJBa3R1ZWxsZXMgRGF0dW0gaXN0ICVzXG4iCiAgV0NNRF9DVVJSRU5UVElNRSwgIkFrdHVlbGxlIFplaXQgaXN0ICVzXG4iCiAgV0NNRF9ORVdEQVRFLCAiR2ViZW4gU2llIGRhcyBuZXVlIERhdHVtIGVpbjogIgogIFdDTURfTkVXVElNRSwgIkdlYmVuIFNpZSBkaWUgbmV1ZSBaZWl0IGVpbjogIgogIFdDTURfTUlTU0lOR0VOViwgIkRpZSBVbWdlYnVuZ3N2YXJpYWJsZSAlcyBpc3QgbmljaHQgZGVmaW5pZXJ0XG4iCiAgV0NNRF9SRUFERkFJTCwgIiclcycga29ubnRlIG5pY2h0IGdl9mZmbmV0IHdlcmRlblxuIgogIFdDTURfQ0FMTElOU0NSSVBULCAiQ2Fubm90IGNhbGwgYmF0Y2ggbGFiZWwgb3V0c2lkZSBvZiBhIGJhdGNoIHNjcmlwdFxuIgogIFdDTURfQUxMLCAiQSIKICBXQ01EX0RFTFBST01QVCwgIiVzLCBs9nNjaGVuIgogIFdDTURfRUNIT1BST01QVCwgIkVjaG8gaXN0ICVzXG4iCiAgV0NNRF9WRVJJRllQUk9NUFQsICJWZXJpZnkgaXN0ICVzXG4iCiAgV0NNRF9WRVJJRllFUlIsICJWZXJpZnkgbXXfIE9OIG9kZXIgT0ZGIHNlaW5cbiI7CiAgV0NNRF9BUkdFUlIsICJQYXJhbWV0ZXJmZWhsZXJcbiIKICBXQ01EX1ZPTFVNRURFVEFJTCwgIlZvbHVtZSBpbiBMYXVmd2VyayAlYyBpc3QgJXNcblZvbHVtZXNlcmllbm51bW1lciBpc3QgJTA0eC0lMDR4XG5cbiIKICBXQ01EX1ZPTFVNRVBST01QVCwgIlZvbHVtZWJlemVpY2hudW5nICgxMSBaZWljaGVuLCBFSU5HQUJFVEFTVEUgZvxyIGtlaW5lKT8iCiAgV0NNRF9OT1BBVEgsICJQQVRIIG5pY2h0IGdlZnVuZGVuXG4iCiAgV0NNRF9BTllLRVksIkRy/GNrZW4gU2llIGRpZSBFaW5nYWJldGFzdGUgdW0gZm9ydHp1ZmFocmVuOiAiCiAgV0NNRF9DT05TVElUTEUsIldpbmUgQmVmZWhsc3Byb3plc3NvciIKICBXQ01EX1ZFUlNJT04sIkNNRCBWZXJzaW9uICVzXG5cbiIKICBXQ01EX01PUkVQUk9NUFQsICJNZWhyPyAiCiAgV0NNRF9MSU5FVE9PTE9ORywgIlRoZSBpbnB1dCBsaW5lIGlzIHRvbyBsb25nLlxuIgp9Cg==