LyoKICogR2VybWFuIHJlc291cmNlcyBmb3IgbXNodG1sCiAqCiAqIENvcHlyaWdodCAyMDA1IEhlbm5pbmcgR2VyaGFyZHQKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBCiAqLwoKCkxBTkdVQUdFIExBTkdfR0VSTUFOLCBTVUJMQU5HX05FVVRSQUwKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCnsKICAgIElEU19NRVNTQUdFX0JPWF9USVRMRSwgIldpbmUgSW50ZXJuZXQgRXhwbG9yZXIiCn0KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCnsKICAgIElEU19QUklOVF9IRUFERVJfVEVNUExBVEUgIiZ3JmJTZWl0ZSAmcCIgLyogRklYTUU6IHNob3VsZCBiZSAiJncmYlNlaXRlICZwIHZvbiAmUCIgKi8KICAgIElEU19QUklOVF9GT09URVJfVEVNUExBVEUgIiZ1JmImZCIKfQoKSURSX0JST1dTRV9DT05URVhUX01FTlUgTUVOVQp7CiAgICBQT1BVUCAiU3RhbmRhcmQiCiAgICB7CiAgICAgICAgTUVOVUlURU0gIiZadXL8Y2siLCAgICAgICAgICAgICAgICAgICAgICAgICAgICBJRE1fR09CQUNLV0FSRAogICAgICAgIE1FTlVJVEVNICJWJm9yd+RydHMiLCAgICAgICAgICAgICAgICAgICAgICAgICAgSURNX0dPRk9SV0FSRAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImU3BlaWNoZXJlIEhpbnRlcmdydW5kIGFscy4uLiIsICAgICAgSURNX1NBVkVCQUNLR1JPVU5ECiAgICAgICAgTUVOVUlURU0gIkFscyBIaW50ZXJncnVuZCIsICAgICAgICAgICAgICAgICAgICBJRE1fU0VUV0FMTFBBUEVSCiAgICAgICAgTUVOVUlURU0gIkhpbnRlcmdydW5kICZrb3BpZXJlbiIsICAgICAgICAgICAgICBJRE1fQ09QWUJBQ0tHUk9VTkQKICAgICAgICBNRU5VSVRFTSAiQWxzIERlc2t0b3BlbGVtZW50IGVpbnJpY2h0ZW4uLi4iLCAgIElETV9TRVRERVNLVE9QSVRFTQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJBbGxlcyAmYXVzd+RobGVuIiwgICAgICAgICAgICAgICAgICAgSURNX1NFTEVDVEFMTAogICAgICAgIE1FTlVJVEVNICJFaW4mZvxnZW4iLCAgICAgICAgICAgICAgICAgICAgICAgICAgSURNX1BBU1RFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkVyemV1Z2UgJlZlcmtu/HBmdW5nIiwgICAgICAgICAgICAgICBJRE1fQ1JFQVRFU0hPUlRDVVQKICAgICAgICBNRU5VSVRFTSAiWnUgJkZhdm9yaXRlbiBoaW56dWb8Z2VuIiwgICAgICAgICAgIElETV9BRERGQVZPUklURVMKICAgICAgICBNRU5VSVRFTSAiJlF1ZWxsdGV4dGFuc2ljaHQiLCAgICAgICAgICAgICAgICAgIElETV9WSUVXU09VUkNFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZUZXh0a29kaWVydW5nIiwgICAgICAgICAgICAgICAgICAgICBJRE1fTEFOR1VBR0UKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkRydWNrZW4iLCAgICAgICAgICAgICAgICAgICAgICAgICAgIElETV9QUklOVAogICAgICAgIE1FTlVJVEVNICJBJmt0dWFsaXNpZXJlbiIsICAgICAgICAgICAgICAgICAgICAgX0lETV9SRUZSRVNICiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZFaWdlbnNjaGFmdGVuIiwgICAgICAgICAgICAgICAgICAgICBJRE1fUFJPUEVSVElFUwogICAgfQoKICAgIFBPUFVQICJCaWxkIgogICAgewogICAgICAgIE1FTlVJVEVNICIm1mZmbmUgVmVyd2VpcyIsICAgICAgICAgICAgICAgICAgICAgSURNX0ZPTExPV0xJTktDCiAgICAgICAgTUVOVUlURU0gItZmZm5lIFZlcndlaXMgaW4gbmV1ZW0gRmVuc3RlciIsICAgICBJRE1fRk9MTE9XTElOS04KICAgICAgICBNRU5VSVRFTSAiU3BlaWNoZXJlICZaaWVsIGFscy4uLiIsICAgICAgICAgICAgIElETV9TQVZFVEFSR0VUCiAgICAgICAgTUVOVUlURU0gIiZEcnVja2UgWmllbCIsICAgICAgICAgICAgICAgICAgICAgICBJRE1fUFJJTlRUQVJHRVQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiWmVpZ2UgQiZpbGQiLCAgICAgICAgICAgICAgICAgICAgICAgIElETV9TSE9XUElDVFVSRQogICAgICAgIE1FTlVJVEVNICJTcGVpY2hlcmUgJkJpbGQgYWxzLi4uIiwgICAgICAgICAgICAgSURNX1NBVkVQSUNUVVJFCiAgICAgICAgTUVOVUlURU0gIiZWZXJzZW5kZSBCaWxkLi4uIiwgICAgICAgICAgICAgICAgICBJRE1fTVBfRU1BSUxQSUNUVVJFCiAgICAgICAgTUVOVUlURU0gIkQmcnVja2UgQmlsZC4uLiIsICAgICAgICAgICAgICAgICAgICBJRE1fTVBfUFJJTlRQSUNUVVJFCiAgICAgICAgTUVOVUlURU0gIiZHZWhlIHp1IEVpZ2VuZSBCaWxkZXIiLCAgICAgICAgICAgICBJRE1fTVBfTVlQSUNTCiAgICAgICAgTUVOVUlURU0gIkFscyBIaW50ZXJncnVuZCIsICAgICAgICAgICAgICAgICAgICBJRE1fU0VUV0FMTFBBUEVSCiAgICAgICAgTUVOVUlURU0gIkFscyBEZXNrdG9wZWxlbWVudCBlaW5yaWNodGVuLi4uIiwgICBJRE1fU0VUREVTS1RPUElURU0KICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQXVzJnNjaG5laWRlbiIsICAgICAgICAgICAgICAgICAgICAgIElETV9DVVQKICAgICAgICBNRU5VSVRFTSAiJktvcGllcmVuIiwgICAgICAgICAgICAgICAgICAgICAgICAgIElETV9DT1BZCiAgICAgICAgTUVOVUlURU0gIlZlcmsmbvxwZnVuZyBrb3BpZXJlbiIsICAgICAgICAgICAgICBJRE1fQ09QWVNIT1JUQ1VUCiAgICAgICAgTUVOVUlURU0gIkVpbiZm/GdlbiIsICAgICAgICAgICAgICAgICAgICAgICAgICBJRE1fUEFTVEUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiWnUgJkZhdm9yaXRlbiBoaW56dWb8Z2VuLi4uIiwgICAgICAgIElETV9BRERGQVZPUklURVMKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkVpZ2Vuc2NoYWZ0ZW4iLCAgICAgICAgICAgICAgICAgICAgIElETV9QUk9QRVJUSUVTCiAgICB9CgogICAgUE9QVVAgIlN0ZXVlcnVuZyIKICAgIHsKICAgICAgICBNRU5VSVRFTSAiJlL8Y2tn5G5naWciLCAgICAgICBJRE1fVU5ETwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJBdXMmc2NobmVpZGVuIiwgICAgIElETV9DVVQKICAgICAgICBNRU5VSVRFTSAiJktvcGllcmVuIiwgICAgICAgICBJRE1fQ09QWQogICAgICAgIE1FTlVJVEVNICJFaW4mZvxnZW4iLCAgICAgICAgIElETV9QQVNURQogICAgICAgIE1FTlVJVEVNICImTPZzY2hlbiIsICAgICAgICAgIElETV9ERUxFVEUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQWxsZXMgJmF1c3fkaGxlbiIsICBJRE1fU0VMRUNUQUxMCiAgICB9CgogICAgUE9QVVAgIlRhYmVsbGUiCiAgICB7CiAgICAgICAgUE9QVVAgIiZBdXN35GhsZW4iCiAgICAgICAgewogICAgICAgICAgICBNRU5VSVRFTSAiJlplbGxlIiwgICAgICAgICAgICAgICBJRE1fQ0VMTFNFTEVDVAogICAgICAgICAgICBNRU5VSVRFTSAiWmVpJmxlIiwgICAgICAgICAgICAgICBJRE1fUk9XU0VMRUNUCiAgICAgICAgICAgIE1FTlVJVEVNICImU3BhbHRlIiwgICAgICAgICAgICAgIElETV9DT0xVTU5TRUxFQ1QKICAgICAgICAgICAgTUVOVUlURU0gIiZUYWJlbGxlIiwgICAgICAgICAgICAgSURNX1RBQkxFU0VMRUNUCiAgICAgICAgfQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImWmVsbGVuIEVpZ2Vuc2NoYWZ0ZW4iLCAgICBJRE1fQ0VMTFBST1BFUlRJRVMKICAgICAgICBNRU5VSVRFTSAiJlRhYmVsbGVuIEVpZ2Vuc2NoYWZ0ZW4iLCAgSURNX1RBQkxFUFJPUEVSVElFUwogICAgfQoKICAgIFBPUFVQICIxRFNlaXRlbiBBdXN3YWhsIgogICAgewogICAgICAgIE1FTlVJVEVNICJBdXMmc2NobmVpZGVuIiwgICAgIElETV9DVVQKICAgICAgICBNRU5VSVRFTSAiJktvcGllcmVuIiwgICAgICAgICBJRE1fQ09QWQogICAgICAgIE1FTlVJVEVNICJFaW4mZvxnZW4iLCAgICAgICAgIElETV9QQVNURQogICAgICAgIE1FTlVJVEVNICJBbGxlcyAmYXVzd+RobGVuIiwgIElETV9TRUxFQ1RBTEwKICAgICAgICBNRU5VSVRFTSAiJkRydWNrZW4iLCAgICAgICAgICBJRE1fUFJJTlQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgIH0KCiAgICBQT1BVUCAiQW5rZXIiCiAgICB7CiAgICAgICAgTUVOVUlURU0gIibWZmZuZW4iLCAgICAgICAgICAgICAgICAgICAgICBJRE1fRk9MTE9XTElOS0MKICAgICAgICBNRU5VSVRFTSAiSW0gJm5ldWVuIEZlbnN0ZXIg9mZmbmVuIiwgICAgIElETV9GT0xMT1dMSU5LTgogICAgICAgIE1FTlVJVEVNICJTcGVpY2hlcmUgJlppZWwgYWxzLi4uIiwgICAgICAgSURNX1NBVkVUQVJHRVQKICAgICAgICBNRU5VSVRFTSAiJkRydWNrZSBaaWVsIiwgICAgICAgICAgICAgICAgIElETV9QUklOVFRBUkdFVAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJBdXMmc2NobmVpZGVuIiwgICAgICAgICAgICAgICAgSURNX0NVVAogICAgICAgIE1FTlVJVEVNICImS29waWVyZW4iLCAgICAgICAgICAgICAgICAgICAgSURNX0NPUFkKICAgICAgICBNRU5VSVRFTSAiJlZlcmtu/HBmdW5nIGtvcGllcmVuIiwgICAgICAgIElETV9DT1BZU0hPUlRDVVQKICAgICAgICBNRU5VSVRFTSAiRWluJmb8Z2VuIiwgICAgICAgICAgICAgICAgICAgIElETV9QQVNURQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJadSAmRmF2b3JpdGVuIGhpbnp1ZvxnZW4uLi4iLCAgSURNX0FEREZBVk9SSVRFUwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImRWlnZW5zY2hhZnRlbiIsICAgICAgICAgICAgICAgSURNX1BST1BFUlRJRVMKICAgIH0KCiAgICBQT1BVUCAiQ29udGV4dCBVbmtub3duIgogICAgewogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgfQoKICAgIFBPUFVQICJEWU5TUkMgQmlsZCIKICAgIHsKICAgICAgICBNRU5VSVRFTSAiJtZmZm5lIFZlcndlaXMiLCAgICAgICAgICAgICAgICAgICAgSURNX0ZPTExPV0xJTktDCiAgICAgICAgTUVOVUlURU0gItZmZm5lIFZlcndlaXMgaW4gJm5ldWVtIEZlbnN0ZXIiLCAgIElETV9GT0xMT1dMSU5LTgogICAgICAgIE1FTlVJVEVNICJTcGVpY2hlcmUgJlppZWwgYWxzLi4uIiwgICAgICAgICAgICBJRE1fU0FWRVRBUkdFVAogICAgICAgIE1FTlVJVEVNICImRHJ1Y2tlIFppZWwiLCAgICAgICAgICAgICAgICAgICAgICBJRE1fUFJJTlRUQVJHRVQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiWmVpZ2UgQiZpbGQiLCAgICAgICAgICAgICAgICAgICAgICAgSURNX1NIT1dQSUNUVVJFCiAgICAgICAgTUVOVUlURU0gIlNwZWljaGVyZSAmVmlkZW8gYWxzLi4uIiwgICAgICAgICAgIElETV9TQVZFUElDVFVSRQogICAgICAgIE1FTlVJVEVNICJBbHMgSGludGVyZ3J1bmQiLCAgICAgICAgICAgICAgICAgICBJRE1fU0VUV0FMTFBBUEVSCiAgICAgICAgTUVOVUlURU0gIkFscyBEZXNrdG9wZWxlbWVudCBlaW5yaWNodGVuLi4uIiwgIElETV9TRVRERVNLVE9QSVRFTQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJBdXMmc2NobmVpZGVuIiwgICAgICAgICAgICAgICAgICAgICBJRE1fQ1VUCiAgICAgICAgTUVOVUlURU0gIiZLb3BpZXJlbiIsICAgICAgICAgICAgICAgICAgICAgICAgIElETV9DT1BZCiAgICAgICAgTUVOVUlURU0gIiZWZXJrbvxwZnVuZyBrb3BpZXJlbiIsICAgICAgICAgICAgIElETV9DT1BZU0hPUlRDVVQKICAgICAgICBNRU5VSVRFTSAiRWluJmb8Z2VuIiwgICAgICAgICAgICAgICAgICAgICAgICAgSURNX1BBU1RFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlp1ICZGYXZvcml0ZW4gaGluenVm/Gdlbi4uLiIsICAgICAgIElETV9BRERGQVZPUklURVMKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQWJzcGllbGVuIiwgICAgICAgICAgICAgICAgICAgICAgICAgSURNX0RZTlNSQ1BMQVkKICAgICAgICBNRU5VSVRFTSAiSGFsdCIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSURNX0RZTlNSQ1NUT1AKICAgICAgICBNRU5VSVRFTSAiJkVpZ2Vuc2NoYWZ0ZW4iLCAgICAgICAgICAgICAgICAgICAgSURNX1BST1BFUlRJRVMKICAgIH0KCiAgICBQT1BVUCAiQVJUIEJpbGQiCiAgICB7CiAgICAgICAgTUVOVUlURU0gIibWZmZuZSBWZXJ3ZWlzIiwgICAgICAgICAgICAgICAgICAgIElETV9GT0xMT1dMSU5LQwogICAgICAgIE1FTlVJVEVNICLWZmZuZSBWZXJ3ZWlzIGluICZuZXVlbSBGZW5zdGVyIiwgICBJRE1fRk9MTE9XTElOS04KICAgICAgICBNRU5VSVRFTSAiU3BlaWNoZXJlICZaaWVsIGFscy4uLiIsICAgICAgICAgICAgSURNX1NBVkVUQVJHRVQKICAgICAgICBNRU5VSVRFTSAiJkRydWNrZSBaaWVsIiwgICAgICAgICAgICAgICAgICAgICAgSURNX1BSSU5UVEFSR0VUCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlplaWdlIEImaWxkIiwgICAgICAgICAgICAgICAgICAgICAgIElETV9TSE9XUElDVFVSRQogICAgICAgIE1FTlVJVEVNICImU3BlaWNoZXJlIEJpbGQgYWxzLi4uIiwgICAgICAgICAgICBJRE1fU0FWRVBJQ1RVUkUKICAgICAgICBNRU5VSVRFTSAiQWxzIEhpbnRlcmdydW5kIiwgICAgICAgICAgICAgICAgICAgSURNX1NFVFdBTExQQVBFUgogICAgICAgIE1FTlVJVEVNICJBbHMgRGVza3RvcGVsZW1lbnQgZWlucmljaHRlbi4uLiIsICBJRE1fU0VUREVTS1RPUElURU0KICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQXVzJnNjaG5laWRlbiIsICAgICAgICAgICAgICAgICAgICAgSURNX0NVVAogICAgICAgIE1FTlVJVEVNICImS29waWVyZW4iLCAgICAgICAgICAgICAgICAgICAgICAgICBJRE1fQ09QWQogICAgICAgIE1FTlVJVEVNICImVmVya278cGZ1bmcga29waWVyZW4iLCAgICAgICAgICAgICBJRE1fQ09QWVNIT1JUQ1VUCiAgICAgICAgTUVOVUlURU0gIiZFaW5m/GdlbiIsICAgICAgICAgICAgICAgICAgICAgICAgIElETV9QQVNURQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJadSAmRmF2b3JpdGVuIGhpbnp1ZvxnZW4uLi4iLCAgICAgICBJRE1fQURERkFWT1JJVEVTCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkFic3BpZWxlbiIsICAgICAgICAgICAgICAgICAgICAgICAgIElETV9JTUdBUlRQTEFZCiAgICAgICAgTUVOVUlURU0gIkFuaGFsdGVuIiwgICAgICAgICAgICAgICAgICAgICAgICAgIElETV9JTUdBUlRTVE9QCiAgICAgICAgTUVOVUlURU0gIlL8Y2tzcHVsZW4iLCAgICAgICAgICAgICAgICAgICAgICAgIElETV9JTUdBUlRSRVdJTkQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkVpZ2Vuc2NoYWZ0ZW4iLCAgICAgICAgICAgICAgICAgICAgSURNX1BST1BFUlRJRVMKICAgIH0KCiAgICBQT1BVUCAiRGVidWciCiAgICB7CiAgICAgICAgTUVOVUlURU0gIlRyYWNlIFRhZ3MiLCAgICAgICAgIElETV9UUkFDRVRBR1MKICAgICAgICBNRU5VSVRFTSAiUmVzb3VyY2UgRmFpbHVyZXMiLCAgSURNX1JFU09VUkNFRkFJTFVSRVMKICAgICAgICBNRU5VSVRFTSAiRHVtcCBUcmFja2luZyBJbmZvIiwgSURNX0RVTVBUUkFDS0lOR0lORk8KICAgICAgICBNRU5VSVRFTSAiRGVidWcgQnJlYWsiLCAgICAgICAgSURNX0RFQlVHQlJFQUsKICAgICAgICBNRU5VSVRFTSAiRGVidWcgVmlldyIsICAgICAgICAgSURNX0RFQlVHVklFVwogICAgICAgIE1FTlVJVEVNICJEdW1wIFRyZWUiLCAgICAgICAgICBJRE1fRFVNUFRSRUUKICAgICAgICBNRU5VSVRFTSAiRHVtcCBMaW5lcyIsICAgICAgICAgSURNX0RVTVBMSU5FUwogICAgICAgIE1FTlVJVEVNICJEdW1wIERpc3BsYXl0cmVlIiwgICBJRE1fRFVNUERJU1BMQVlUUkVFCiAgICAgICAgTUVOVUlURU0gIkR1bXAgRm9ybWF0Q2FjaGVzIiwgIElETV9EVU1QRk9STUFUQ0FDSEVTCiAgICAgICAgTUVOVUlURU0gIkR1bXAgTGF5b3V0UmVjdHMiLCAgIElETV9EVU1QTEFZT1VUUkVDVFMKICAgICAgICBNRU5VSVRFTSAiTWVtb3J5IE1vbml0b3IiLCAgICAgSURNX01FTU9SWU1PTklUT1IKICAgICAgICBNRU5VSVRFTSAiUGVyZm9ybWFuY2UgTWV0ZXJzIiwgSURNX1BFUkZPUk1BTkNFTUVURVJTCiAgICAgICAgTUVOVUlURU0gIlNhdmUgSFRNTCIsICAgICAgICAgIElETV9TQVZFSFRNTAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImQnJvd3NlIFZpZXciLCAgICAgICBJRE1fQlJPV1NFTU9ERQogICAgICAgIE1FTlVJVEVNICImRWRpdCBWaWV3IiwgICAgICAgICBJRE1fRURJVE1PREUKICAgIH0KCiAgICBQT1BVUCAiVmVydGlrYWxlIFNjcm9sbGJhciIKICAgIHsKICAgICAgICBNRU5VSVRFTSAiU2Nyb2xsZSBoaWVyIiwgICAgSURNX1NDUk9MTF9IRVJFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIk9iZW4iLCAgICAgICAgICAgIElETV9TQ1JPTExfVE9QCiAgICAgICAgTUVOVUlURU0gIlVudGVuIiwgICAgICAgICAgIElETV9TQ1JPTExfQk9UVE9NCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlNlaXRlIGhvY2giLCAgICAgIElETV9TQ1JPTExfUEFHRVVQCiAgICAgICAgTUVOVUlURU0gIlNlaXRlIHJ1bnRlciIsICAgIElETV9TQ1JPTExfUEFHRURPV04KICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiU2Nyb2xsZSBob2NoIiwgICAgSURNX1NDUk9MTF9VUAogICAgICAgIE1FTlVJVEVNICJTY3JvbGxlIHJ1bnRlciIsICBJRE1fU0NST0xMX0RPV04KICAgIH0KCiAgICBQT1BVUCAiSG9yaXpvbnRhbGUgU2Nyb2xsYmFyIgogICAgewogICAgICAgIE1FTlVJVEVNICJTY3JvbGxlIGhpZXIiLCAgICBJRE1fU0NST0xMX0hFUkUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiTGlua2UgRWNrZSIsICAgICAgSURNX1NDUk9MTF9MRUZURURHRQogICAgICAgIE1FTlVJVEVNICJSZWNodGUgRWNrZSIsICAgICBJRE1fU0NST0xMX1JJR0hURURHRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJTZWl0ZSBsaW5rcyIsICAgICBJRE1fU0NST0xMX1BBR0VMRUZUCiAgICAgICAgTUVOVUlURU0gIlNlaXRlIHJlY2h0cyIsICAgIElETV9TQ1JPTExfUEFHRVJJR0hUCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlNjcm9sbGUgbGlua3MiLCAgIElETV9TQ1JPTExfTEVGVAogICAgICAgIE1FTlVJVEVNICJTY3JvbGxlIHJlY2h0cyIsICBJRE1fU0NST0xMX1JJR0hUCiAgICB9Cn0K