LyoKICogR2VybWFuIHJlc291cmNlcyBmb3IgbXNodG1sCiAqCiAqIENvcHlyaWdodCAyMDA1IEhlbm5pbmcgR2VyaGFyZHQKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiAqLwoKCkxBTkdVQUdFIExBTkdfR0VSTUFOLCBTVUJMQU5HX0RFRkFVTFQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCnsKICAgIElEU19IVE1MRElTQUJMRUQgICJEaWUgSFRNTCBEYXJzdGVsbHVuZyBpc3QgenVyIFplaXQgYXVzZ2VzY2hhbHRlbi4iCiAgICBJRFNfSFRNTERPQ1VNRU5UICAiSFRNTCBEb2t1bWVudCIKfQoKLyogRklYTUU6IFRoaXMgc2hvdWxkIGJlIGluIHNoZG9jbGMuZGxsICovCgpJRFJfQlJPV1NFX0NPTlRFWFRfTUVOVSBNRU5VCnsKICAgIFBPUFVQICJTdGFuZGFyZCIKICAgIHsKICAgICAgICBNRU5VSVRFTSAiJlp1cvxjayIsICAgICAgICAgICAgICAgICAgICAgICAgICAgIElETV9CQUNLCiAgICAgICAgTUVOVUlURU0gIlYmb3J35HJ0cyIsICAgICAgICAgICAgICAgICAgICAgICAgICBJRE1fRk9SV0FSRAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImU3BlaWNoZXJlIEhpbnRlcmdydW5kIGFscy4uLiIsICAgICAgSURNX1NBVkVCQUNLR1JPVU5EQVMKICAgICAgICBNRU5VSVRFTSAiQWxzIEhpbnRlcmdydW5kIiwgICAgICAgICAgICAgICAgICAgIElETV9TRVRBU0JBQ0tHUk9VTkQKICAgICAgICBNRU5VSVRFTSAiSGludGVyZ3J1bmQgJmtvcGllcmVuIiwgICAgICAgICAgICAgIElETV9DT1BZQkFDS0dST1VORAogICAgICAgIE1FTlVJVEVNICJBbHMgRGVza3RvcGVsZW1lbnQgZWlucmljaHRlbi4uLiIsICAgSURNX1NFVEFTREVTS1RPUElURU0KICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQWxsZXMgJmF1c3fkaGxlbiIsICAgICAgICAgICAgICAgICAgIElETV9TRUxFQ1RBTEwKICAgICAgICBNRU5VSVRFTSAiRWluJmb8Z2VuIiwgICAgICAgICAgICAgICAgICAgICAgICAgIElETV9QQVNURQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJFcnpldWdlICZWZXJrbvxwZnVuZyIsICAgICAgICAgICAgICAgSURNX0NSRUFURVNIT1JUQ1VUCiAgICAgICAgTUVOVUlURU0gIlp1ICZGYXZvcml0ZW4gaGluenVm/GdlbiIsICAgICAgICAgICBJRE1fQUREVE9GQVZPVVJJVEVTCiAgICAgICAgTUVOVUlURU0gIiZRdWVsbHRleHRhbnNpY2h0IiwgICAgICAgICAgICAgICAgICBJRE1fVklFV1NPVVJDRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImVGV4dGtvZGllcnVuZyIsICAgICAgICAgICAgICAgICAgICAgSURNX0VOQ09ESU5HIAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImRHJ1Y2tlbiIsICAgICAgICAgICAgICAgICAgICAgICAgICAgSURNX1BSSU5UCiAgICAgICAgTUVOVUlURU0gIkEma3R1YWxpc2llcmVuIiwgICAgICAgICAgICAgICAgICAgICBJRE1fUkVGUkVTSCAKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkVpZ2Vuc2NoYWZ0ZW4iLCAgICAgICAgICAgICAgICAgICAgIElETV9QUk9QRVJUSUVTCiAgICB9CgogICAgUE9QVVAgIkJpbGQiCiAgICB7CiAgICAgICAgTUVOVUlURU0gIibWZmZuZSBWZXJ3ZWlzIiwgICAgICAgICAgICAgICAgICAgICBJRE1fT1BFTkxJTksKICAgICAgICBNRU5VSVRFTSAi1mZmbmUgVmVyd2VpcyBpbiBuZXVlbSBGZW5zdGVyIiwgICAgIElETV9PUEVOSU5ORVdXSU5ET1cKICAgICAgICBNRU5VSVRFTSAiU3BlaWNoZXJlICZaaWVsIGFscy4uLiIsICAgICAgICAgICAgIElETV9TQVZFVEFSR0VUQVMKICAgICAgICBNRU5VSVRFTSAiJkRydWNrZSBaaWVsIiwgICAgICAgICAgICAgICAgICAgICAgIElETV9QUklOVFRBUkdFVAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJaZWlnZSBCJmlsZCIsICAgICAgICAgICAgICAgICAgICAgICAgSURNX1NIT1dQSUNUVVJFCiAgICAgICAgTUVOVUlURU0gIlNwZWljaGVyZSAmQmlsZCBhbHMuLi4iLCAgICAgICAgICAgICBJRE1fU0FWRVBJQ1RVUkVBUwogICAgICAgIE1FTlVJVEVNICImVmVyc2VuZGUgQmlsZC4uLiIsICAgICAgICAgICAgICAgICAgSURNX0VNQUlMUElDVFVSRQogICAgICAgIE1FTlVJVEVNICJEJnJ1Y2tlIEJpbGQuLi4iLCAgICAgICAgICAgICAgICAgICAgSURNX1BSSU5UUElDVFVSRQogICAgICAgIE1FTlVJVEVNICImR2VoZSB6dSBFaWdlbmUgQmlsZGVyIiwgICAgICAgICAgICAgSURNX0dPVE9NWVBJQ1RVUkVTCiAgICAgICAgTUVOVUlURU0gIkFscyBIaW50ZXJncnVuZCIsICAgICAgICAgICAgICAgICAgICBJRE1fU0VUQVNCQUNLR1JPVU5ECiAgICAgICAgTUVOVUlURU0gIkFscyBEZXNrdG9wZWxlbWVudCBlaW5yaWNodGVuLi4uIiwgICBJRE1fU0VUQVNERVNLVE9QSVRFTQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJBdXMmc2NobmVpZGVuIiwgICAgICAgICAgICAgICAgICAgICAgSURNX0NVVAogICAgICAgIE1FTlVJVEVNICImS29waWVyZW4iLCAgICAgICAgICAgICAgICAgICAgICAgICAgSURNX0NPUFkKICAgICAgICBNRU5VSVRFTSAiVmVyayZu/HBmdW5nIGtvcGllcmVuIiwgICAgICAgICAgICAgIElETV9DT1BZU0hPUlRDVVQKICAgICAgICBNRU5VSVRFTSAiRWluJmb8Z2VuIiwgICAgICAgICAgICAgICAgICAgICAgICAgIElETV9QQVNURSAKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiWnUgJkZhdm9yaXRlbiBoaW56dWb8Z2VuLi4uIiwgICAgICAgIElETV9BRERUT0ZBVk9VUklURVMKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkVpZ2Vuc2NoYWZ0ZW4iLCAgICAgICAgICAgICAgICAgICAgIElETV9QUk9QRVJUSUVTCiAgICB9CgogICAgUE9QVVAgIlN0ZXVlcnVuZyIKICAgIHsKICAgICAgICBNRU5VSVRFTSAiJlL8Y2tn5G5naWciLCAgICAgICBJRE1fVU5ETyAKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQXVzJnNjaG5laWRlbiIsICAgICBJRE1fQ1VUCiAgICAgICAgTUVOVUlURU0gIiZLb3BpZXJlbiIsICAgICAgICAgSURNX0NPUFkKICAgICAgICBNRU5VSVRFTSAiRWluJmb8Z2VuIiwgICAgICAgICBJRE1fUEFTVEUKICAgICAgICBNRU5VSVRFTSAiJkz2c2NoZW4iLCAgICAgICAgICBJRE1fREVMRVRFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkFsbGVzICZhdXN35GhsZW4iLCAgSURNX1NFTEVDVEFMTAogICAgfQoKICAgIFBPUFVQICJUYWJlbGxlIgogICAgewogICAgICAgIFBPUFVQICImQXVzd+RobGVuIgogICAgICAgIHsKICAgICAgICAgICAgTUVOVUlURU0gIiZaZWxsZSIsICAgICAgICAgICAgICAgSURNX0NFTEwgCiAgICAgICAgICAgIE1FTlVJVEVNICJaZWkmbGUiLCAgICAgICAgICAgICAgIElETV9ST1cKICAgICAgICAgICAgTUVOVUlURU0gIiZTcGFsdGUiLCAgICAgICAgICAgICAgSURNX0NPTFVNTgogICAgICAgICAgICBNRU5VSVRFTSAiJlRhYmVsbGUiLCAgICAgICAgICAgICBJRE1fVEFCTEUKICAgICAgICB9CiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZaZWxsZW4gRWlnZW5zY2hhZnRlbiIsICAgIElETV9DRUxMUFJPUEVSVElFUwogICAgICAgIE1FTlVJVEVNICImVGFiZWxsZW4gRWlnZW5zY2hhZnRlbiIsICBJRE1fVEFCTEVQUk9QRVJUSUVTCiAgICB9CgogICAgUE9QVVAgIjFEU2VpdGVuIEF1c3dhaGwiCiAgICB7CiAgICAgICAgTUVOVUlURU0gIkF1cyZzY2huZWlkZW4iLCAgICAgSURNX0NVVAogICAgICAgIE1FTlVJVEVNICImS29waWVyZW4iLCAgICAgICAgIElETV9DT1BZCiAgICAgICAgTUVOVUlURU0gIkVpbiZm/GdlbiIsICAgICAgICAgSURNX1BBU1RFCiAgICAgICAgTUVOVUlURU0gIkFsbGVzICZhdXN35GhsZW4iLCAgSURNX1NFTEVDVEFMTCAKICAgICAgICBNRU5VSVRFTSAiJkRydWNrZW4iLCAgICAgICAgICBJRE1fUFJJTlQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgIH0KCiAgICBQT1BVUCAiQW5rZXIiCiAgICB7CiAgICAgICAgTUVOVUlURU0gIibWZmZuZW4iLCAgICAgICAgICAgICAgICAgICAgICBJRE1fT1BFTkxJTksKICAgICAgICBNRU5VSVRFTSAiSW0gJm5ldWVuIEZlbnN0ZXIg9mZmbmVuIiwgICAgIElETV9PUEVOSU5ORVdXSU5ET1cKICAgICAgICBNRU5VSVRFTSAiU3BlaWNoZXJlICZaaWVsIGFscy4uLiIsICAgICAgIElETV9TQVZFVEFSR0VUQVMKICAgICAgICBNRU5VSVRFTSAiJkRydWNrZSBaaWVsIiwgICAgICAgICAgICAgICAgIElETV9QUklOVFRBUkdFVAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJBdXMmc2NobmVpZGVuIiwgICAgICAgICAgICAgICAgSURNX0NVVAogICAgICAgIE1FTlVJVEVNICImS29waWVyZW4iLCAgICAgICAgICAgICAgICAgICAgSURNX0NPUFkKICAgICAgICBNRU5VSVRFTSAiJlZlcmtu/HBmdW5nIGtvcGllcmVuIiwgICAgICAgIElETV9DT1BZU0hPUlRDVVQKICAgICAgICBNRU5VSVRFTSAiRWluJmb8Z2VuIiwgICAgICAgICAgICAgICAgICAgIElETV9QQVNURQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJadSAmRmF2b3JpdGVuIGhpbnp1ZvxnZW4uLi4iLCAgSURNX0FERFRPRkFWT1VSSVRFUwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImRWlnZW5zY2hhZnRlbiIsICAgICAgICAgICAgICAgSURNX1BST1BFUlRJRVMKICAgIH0KCiAgICBQT1BVUCAiQ29udGV4dCBVbmtub3duIgogICAgewogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgfQoKICAgIFBPUFVQICJEWU5TUkMgQmlsZCIKICAgIHsKICAgICAgICBNRU5VSVRFTSAiJtZmZm5lIFZlcndlaXMiLCAgICAgICAgICAgICAgICAgICAgSURNX09QRU5MSU5LCiAgICAgICAgTUVOVUlURU0gItZmZm5lIFZlcndlaXMgaW4gJm5ldWVtIEZlbnN0ZXIiLCAgIElETV9PUEVOSU5ORVdXSU5ET1cKICAgICAgICBNRU5VSVRFTSAiU3BlaWNoZXJlICZaaWVsIGFscy4uLiIsICAgICAgICAgICAgSURNX1NBVkVUQVJHRVRBUwogICAgICAgIE1FTlVJVEVNICImRHJ1Y2tlIFppZWwiLCAgICAgICAgICAgICAgICAgICAgICBJRE1fUFJJTlRUQVJHRVQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiWmVpZ2UgQiZpbGQiLCAgICAgICAgICAgICAgICAgICAgICAgSURNX1NIT1dQSUNUVVJFCiAgICAgICAgTUVOVUlURU0gIlNwZWljaGVyZSAmVmlkZW8gYWxzLi4uIiwgICAgICAgICAgIElETV9TQVZFUElDVFVSRUFTCiAgICAgICAgTUVOVUlURU0gIkFscyBIaW50ZXJncnVuZCIsICAgICAgICAgICAgICAgICAgIElETV9TRVRBU0JBQ0tHUk9VTkQKICAgICAgICBNRU5VSVRFTSAiQWxzIERlc2t0b3BlbGVtZW50IGVpbnJpY2h0ZW4uLi4iLCAgSURNX1NFVEFTREVTS1RPUElURU0KICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQXVzJnNjaG5laWRlbiIsICAgICAgICAgICAgICAgICAgICAgSURNX0NVVAogICAgICAgIE1FTlVJVEVNICImS29waWVyZW4iLCAgICAgICAgICAgICAgICAgICAgICAgICBJRE1fQ09QWQogICAgICAgIE1FTlVJVEVNICImVmVya278cGZ1bmcga29waWVyZW4iLCAgICAgICAgICAgICBJRE1fQ09QWVNIT1JUQ1VUCiAgICAgICAgTUVOVUlURU0gIkVpbiZm/GdlbiIsICAgICAgICAgICAgICAgICAgICAgICAgIElETV9QQVNURQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJadSAmRmF2b3JpdGVuIGhpbnp1ZvxnZW4uLi4iLCAgICAgICBJRE1fQUREVE9GQVZPVVJJVEVTCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkFic3BpZWxlbiIsICAgICAgICAgICAgICAgICAgICAgICAgIElETV9QTEFZCiAgICAgICAgTUVOVUlURU0gIkhhbHQiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElETV9TVE9QCiAgICAgICAgTUVOVUlURU0gIiZFaWdlbnNjaGFmdGVuIiwgICAgICAgICAgICAgICAgICAgIElETV9QUk9QRVJUSUVTCiAgICB9CgogICAgUE9QVVAgIkFSVCBCaWxkIgogICAgewogICAgICAgIE1FTlVJVEVNICIm1mZmbmUgVmVyd2VpcyIsICAgICAgICAgICAgICAgICAgICBJRE1fT1BFTkxJTksKICAgICAgICBNRU5VSVRFTSAi1mZmbmUgVmVyd2VpcyBpbiAmbmV1ZW0gRmVuc3RlciIsICAgSURNX09QRU5JTk5FV1dJTkRPVwogICAgICAgIE1FTlVJVEVNICJTcGVpY2hlcmUgJlppZWwgYWxzLi4uIiwgICAgICAgICAgICBJRE1fU0FWRVRBUkdFVEFTCiAgICAgICAgTUVOVUlURU0gIiZEcnVja2UgWmllbCIsICAgICAgICAgICAgICAgICAgICAgIElETV9QUklOVFRBUkdFVAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJaZWlnZSBCJmlsZCIsICAgICAgICAgICAgICAgICAgICAgICBJRE1fU0hPV1BJQ1RVUkUKICAgICAgICBNRU5VSVRFTSAiJlNwZWljaGVyZSBCaWxkIGFscy4uLiIsICAgICAgICAgICAgSURNX1NBVkVQSUNUVVJFQVMKICAgICAgICBNRU5VSVRFTSAiQWxzIEhpbnRlcmdydW5kIiwgICAgICAgICAgICAgICAgICAgSURNX1NFVEFTQkFDS0dST1VORAogICAgICAgIE1FTlVJVEVNICJBbHMgRGVza3RvcGVsZW1lbnQgZWlucmljaHRlbi4uLiIsICBJRE1fU0VUQVNERVNLVE9QSVRFTQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJBdXMmc2NobmVpZGVuIiwgICAgICAgICAgICAgICAgICAgICBJRE1fQ1VUCiAgICAgICAgTUVOVUlURU0gIiZLb3BpZXJlbiIsICAgICAgICAgICAgICAgICAgICAgICAgIElETV9DT1BZCiAgICAgICAgTUVOVUlURU0gIiZWZXJrbvxwZnVuZyBrb3BpZXJlbiIsICAgICAgICAgICAgIElETV9DT1BZU0hPUlRDVVQKICAgICAgICBNRU5VSVRFTSAiJkVpbmb8Z2VuIiwgICAgICAgICAgICAgICAgICAgICAgICAgSURNX1BBU1RFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlp1ICZGYXZvcml0ZW4gaGluenVm/Gdlbi4uLiIsICAgICAgIElETV9BRERUT0ZBVk9VUklURVMKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQWJzcGllbGVuIiwgICAgICAgICAgICAgICAgICAgICAgICAgSURNX1BMQVkKICAgICAgICBNRU5VSVRFTSAiQW5oYWx0ZW4iLCAgICAgICAgICAgICAgICAgICAgICAgICAgSURNX1NUT1AKICAgICAgICBNRU5VSVRFTSAiUvxja3NwdWxlbiIsICAgICAgICAgICAgICAgICAgICAgICAgSURNX1JFV0lORAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImRWlnZW5zY2hhZnRlbiIsICAgICAgICAgICAgICAgICAgICBJRE1fUFJPUEVSVElFUwogICAgfQoKICAgIFBPUFVQICJEZWJ1ZyIKICAgIHsKICAgICAgICBNRU5VSVRFTSAiVHJhY2UgVGFncyIsICAgICAgICAgSURNX1RSQUNFVEFHUyAKICAgICAgICBNRU5VSVRFTSAiUmVzb3VyY2UgRmFpbHVyZXMiLCAgSURNX1JFU09VUkNFRkFJTFVSRVMKICAgICAgICBNRU5VSVRFTSAiRHVtcCBUcmFja2luZyBJbmZvIiwgSURNX0RVTVBUUkFDS0lOR0lORk8KICAgICAgICBNRU5VSVRFTSAiRGVidWcgQnJlYWsiLCAgICAgICAgSURNX0RFQlVHQlJFQUsKICAgICAgICBNRU5VSVRFTSAiRGVidWcgVmlldyIsICAgICAgICAgSURNX0RFQlVHVklFVwogICAgICAgIE1FTlVJVEVNICJEdW1wIFRyZWUiLCAgICAgICAgICBJRE1fRFVNUFRSRUUKICAgICAgICBNRU5VSVRFTSAiRHVtcCBMaW5lcyIsICAgICAgICAgSURNX0RVTVBMSU5FUwogICAgICAgIE1FTlVJVEVNICJEdW1wIERpc3BsYXl0cmVlIiwgICBJRE1fRFVNUERJU1BMQVlUUkVFCiAgICAgICAgTUVOVUlURU0gIkR1bXAgRm9ybWF0Q2FjaGVzIiwgIElETV9EVU1QRk9STUFUQ0FDSEVTCiAgICAgICAgTUVOVUlURU0gIkR1bXAgTGF5b3V0UmVjdHMiLCAgIElETV9EVU1QTEFZT1VUUkVDVFMKICAgICAgICBNRU5VSVRFTSAiTWVtb3J5IE1vbml0b3IiLCAgICAgSURNX01FTU9SWU1PTklUT1IKICAgICAgICBNRU5VSVRFTSAiUGVyZm9ybWFuY2UgTWV0ZXJzIiwgSURNX1BFUkZPUk1BTkNFTUVURVJTCiAgICAgICAgTUVOVUlURU0gIlNhdmUgSFRNTCIsICAgICAgICAgIElETV9TQVZFSFRNTAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImQnJvd3NlIFZpZXciLCAgICAgICBJRE1fQlJPV1NFVklFVwogICAgICAgIE1FTlVJVEVNICImRWRpdCBWaWV3IiwgICAgICAgICBJRE1fRURJVFZJRVcKICAgIH0KCiAgICBQT1BVUCAiVmVydGlrYWxlIFNjcm9sbGJhciIKICAgIHsKICAgICAgICBNRU5VSVRFTSAiU2Nyb2xsZSBoaWVyIiwgICAgSURNX1NDUk9MTEhFUkUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiT2JlbiIsICAgICAgICAgICAgSURNX1RPUAogICAgICAgIE1FTlVJVEVNICJVbnRlbiIsICAgICAgICAgICBJRE1fQk9UVE9NCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlNlaXRlIGhvY2giLCAgICAgIElETV9QQUdFVVAKICAgICAgICBNRU5VSVRFTSAiU2VpdGUgcnVudGVyIiwgICAgSURNX1BBR0VET1dOCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlNjcm9sbGUgaG9jaCIsICAgIElETV9TQ1JPTExVUAogICAgICAgIE1FTlVJVEVNICJTY3JvbGxlIHJ1bnRlciIsICBJRE1fU0NST0xMRE9XTgogICAgfQoKICAgIFBPUFVQICJIb3Jpem9udGFsZSBTY3JvbGxiYXIiCiAgICB7CiAgICAgICAgTUVOVUlURU0gIlNjcm9sbGUgaGllciIsICAgIElETV9TQ1JPTExIRVJFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkxpbmtlIEVja2UiLCAgICAgIElETV9MRUZURURHRQogICAgICAgIE1FTlVJVEVNICJSZWNodGUgRWNrZSIsICAgICBJRE1fUklHSFRFREdFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlNlaXRlIGxpbmtzIiwgICAgIElETV9QQUdFTEVGVAogICAgICAgIE1FTlVJVEVNICJTZWl0ZSByZWNodHMiLCAgICBJRE1fUEFHRVJJR0hUCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlNjcm9sbGUgbGlua3MiLCAgIElETV9TQ1JPTExMRUZUCiAgICAgICAgTUVOVUlURU0gIlNjcm9sbGUgcmVjaHRzIiwgIElETV9TQ1JPTExSSUdIVAogICAgfQp9Cg==