LyoKICogTXNIVE1MIHJlc291cmNlcwogKiBGcmVuY2ggTGFuZ3VhZ2UgU3VwcG9ydAogKgogKiBDb3B5cmlnaHQgMjAwNS0yMDA2IEpvbmF0aGFuIEVybnN0CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCgpMQU5HVUFHRSBMQU5HX0ZSRU5DSCwgU1VCTEFOR19ORVVUUkFMCgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQp7CiAgICBJRFNfSFRNTERJU0FCTEVEICAgICJMZSByZW5kdSBIVE1MIGVzdCBhY3R1ZWxsZW1lbnQgZOlzYWN0aXbpLiIKICAgIElEU19IVE1MRE9DVU1FTlQgICAgIkRvY3VtZW50IEhUTUwiCiAgICBJRFNfRE9XTkxPQURJTkcgICAgICJU6WzpY2hhcmdlbWVudC4uLiIKICAgIElEU19JTlNUQUxMSU5HICAgICAgIkluc3RhbGxhdGlvbi4uLiIKfQoKSURfRFdMX0RJQUxPRyBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAgMCwgMCwgMjYwLCA4NQpTVFlMRSBEU19NT0RBTEZSQU1FIHwgRFNfQ0VOVEVSIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiUHJvZ3JhbW1lIGQnaW5zdGFsbGF0aW9uIGRlIEdlY2tvIGRlIFdpbmUiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogICAgTFRFWFQgIkNldHRlIGFwcGxpY2F0aW9uIGVzc2FpZSBkJ2FmZmljaGVyIHVuZSBwYWdlIEhUTUwuIFdpbmUgcmVxdWllcnQgbGEgcHLpc2VuY2UgZHUgbW90ZXVyIGRlIHJlbmR1IEdlY2tvIGRlIE1vemlsbGEiIFwKICAgICAgICAgICJwb3VyIGFmZmljaGVyIGNldHRlIHBhZ2UuIENsaXF1ZXogc3VyIEluc3RhbGxlciBzaSB2b3VzIHNvdWhhaXRleiBxdWUgV2luZSAiIFwKICAgICAgICAgICJ06WzpY2hhcmdlIGV0IGluc3RhbGxlIGF1dG9tYXRpcXVlbWVudCBHZWNrby4iLCBJRF9EV0xfU1RBVFVTLCAxMCwgMTAsIDI0MCwgMzAsIFNTX0NFTlRFUgogICAgQ09OVFJPTCAiUHJvZ3Jlc3Npb24iLCBJRF9EV0xfUFJPR1JFU1MsIFBST0dSRVNTX0NMQVNTQSwgV1NfQk9SREVSfFBCU19TTU9PVEgsIDEwLCA0MCwgMjQwLCAxMgogICAgUFVTSEJVVFRPTiAiQW5udWxlciIsIElEQ0FOQ0VMLCAxNDAsIDYwLCA1MCwgMTUsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogICAgUFVTSEJVVFRPTiAiSW5zdGFsbGVyIiwgSURfRFdMX0lOU1RBTEwsIDIwMCwgNjAsIDUwLCAxNSwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCn0KCi8qIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBpbiBzaGRvY2xjLmRsbCAqLwoKSURSX0JST1dTRV9DT05URVhUX01FTlUgTUVOVQp7CiAgICBQT1BVUCAiRGVmYXVsdCIKICAgIHsKICAgICAgICBNRU5VSVRFTSAiUGFnZSBwcukmY+lkZW50ZSIsICAgICAgICAgICAgICAgICAgSURNX0JBQ0sKICAgICAgICBNRU5VSVRFTSAiUGFnZSBzdWkmdmFudGUiLCAgICAgICAgICAgICAgIElETV9GT1JXQVJECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkVucmVnaXN0cmVyIGwnJmFycmnocmUtcGxhbiBzb3VzLi4uIiwgSURNX1NBVkVCQUNLR1JPVU5EQVMKICAgICAgICBNRU5VSVRFTSAiyXQmYWJsaXIgZW4gdGFudCBxdSfpbOltZW50IGQnYXJyaehyZS1wbGFuIiwgICAgIElETV9TRVRBU0JBQ0tHUk9VTkQKICAgICAgICBNRU5VSVRFTSAiQ29waWUmciBsJ2FycmnocmUtcGxhbiIsICAgICAgIElETV9DT1BZQkFDS0dST1VORAogICAgICAgIE1FTlVJVEVNICJE6WZpbmlyIGNvbW1lIOls6W1lbnQgZHUgJkJ1cmVhdS4uLiIsICAgSURNX1NFVEFTREVTS1RPUElURU0KICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlPpbGVjdGlvbm5lciB0b3V0IiwgICAgICAgICAgICBJRE1fU0VMRUNUQUxMCiAgICAgICAgTUVOVUlURU0gIkMmb2xsZXIiLCAgICAgICAgICAgICAgICAgSURNX1BBU1RFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkNy6WVyICZ1biByYWNjb3VyY2kiLCAgICAgICBJRE1fQ1JFQVRFU0hPUlRDVVQKICAgICAgICBNRU5VSVRFTSAiQWpvdXRlciBhdSZ4IEZhdm9yaXMuLi4iLCAgICAgSURNX0FERFRPRkFWT1VSSVRFUwogICAgICAgIE1FTlVJVEVNICJBJmZmaWNoZXIgbGEgc291cmNlIiwgICAgICAgICAgIElETV9WSUVXU09VUkNFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkNvJmRhZ2UiLCAgICAgICAgICAgICAgSURNX0VOQ09ESU5HIAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImSW1wcmltZXIiLCAgICAgICAgICAgICAgICAgSURNX1BSSU5UCiAgICAgICAgTUVOVUlURU0gIkFjdHVhbGlzJmVyIiwgICAgICAgICAgICAgICBfSURNX1JFRlJFU0gKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlByb3Byael06XMiLCAgICAgICAgICAgIElETV9QUk9QRVJUSUVTCiAgICB9CgogICAgUE9QVVAgIkltYWdlIgogICAgewogICAgICAgIE1FTlVJVEVNICJPdSZ2cmlyIGxlIGxpZW4iLCAgICAgICAgICAgICAgIElETV9PUEVOTElOSwogICAgICAgIE1FTlVJVEVNICJPdXZyaXIgbGUgbGllbiBkYW5zIHVuZSAmbm91dmVsbGUgZmVu6nRyZSIsIElETV9PUEVOSU5ORVdXSU5ET1cKICAgICAgICBNRU5VSVRFTSAiRW5yZWdpc3RyZXIgbGEgY2libGUgc28mdXMuLi4iLCAgICAgICBJRE1fU0FWRVRBUkdFVEFTCiAgICAgICAgTUVOVUlURU0gIkltcHJpbWVyIGxhIGNpYiZsZSIsICAgICAgICAgICAgSURNX1BSSU5UVEFSR0VUCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkFmZmljJmhlciBsJ2ltYWdlIiwgICAgICAgICAgICBJRE1fU0hPV1BJQ1RVUkUKICAgICAgICBNRU5VSVRFTSAiRW5yZWdpc3RyZXIgbCdpbWFnZSAmc291cy4uLiIsICAgICAgSURNX1NBVkVQSUNUVVJFQVMKICAgICAgICBNRU5VSVRFTSAiRW52b3llciBsJ2ltYWdlIHBhciAmY291cnJpZXIg6WxlY3Ryb25pcXVlLi4uIiwgICAgICAgSURNX0VNQUlMUElDVFVSRQogICAgICAgIE1FTlVJVEVNICImSW1wcmltZXIgbCdpbWFnZS4uLiIsICAgICAgICBJRE1fUFJJTlRQSUNUVVJFCiAgICAgICAgTUVOVUlURU0gIkF0dGVpbmRyZSAmTWVzIGltYWdlcyIsICAgICAgIElETV9HT1RPTVlQSUNUVVJFUwogICAgICAgIE1FTlVJVEVNICLJJnRhYmxpciBlbiB0YW50IHF1J+ls6W1lbnQgZCdhcnJp6HJlLXBsYW4iLCAgICAgICBJRE1fU0VUQVNCQUNLR1JPVU5ECiAgICAgICAgTUVOVUlURU0gIkTpZmluaXIgY29tbWUg6WzpbWVudCBkdSAmQnVyZWF1Li4uIiwgIElETV9TRVRBU0RFU0tUT1BJVEVNCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkNvdXBlJnIiLCAgICAgICAgICAgICAgICAgICAgIElETV9DVVQKICAgICAgICBNRU5VSVRFTSAiQ29waSZlciIsICAgICAgICAgICAgICAgICAgICBJRE1fQ09QWQogICAgICAgIE1FTlVJVEVNICJDb3BpZXIgbGUgciZhY2NvdXJjaSIsICAgICAgICAgICBJRE1fQ09QWVNIT1JUQ1VUCiAgICAgICAgTUVOVUlURU0gIkMmb2xsZXIiLCAgICAgICAgICAgICAgICAgICBJRE1fUEFTVEUgCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkFqb3V0ZXIgYXUmeCBGYXZvcmlzLi4uIiwgICAgIElETV9BRERUT0ZBVk9VUklURVMKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlByb3Byael06XMiLCAgICAgICAgICAgICAgSURNX1BST1BFUlRJRVMKICAgIH0KCiAgICBQT1BVUCAiQ29udHJvbCIKICAgIHsKICAgICAgICBNRU5VSVRFTSAiJkFubnVsZXIiLCAgICAgICBJRE1fVU5ETyAKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQ291cGUmciIsICAgICAgICBJRE1fQ1VUCiAgICAgICAgTUVOVUlURU0gIkNvcGkmZXIiLCAgICAgICBJRE1fQ09QWQogICAgICAgIE1FTlVJVEVNICJDJm9sbGVyIiwgICAgICBJRE1fUEFTVEUKICAgICAgICBNRU5VSVRFTSAiU3VwcHJpJm1lciIsICAgICBJRE1fREVMRVRFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZT6WxlY3Rpb25uZXIgdG91dCIsIElETV9TRUxFQ1RBTEwKICAgIH0KCiAgICBQT1BVUCAiVGFibGUiCiAgICB7CiAgICAgICAgUE9QVVAgIiZT6WxlY3Rpb25uZXIiCiAgICAgICAgewogICAgICAgICAgICBNRU5VSVRFTSAiJmNlbGx1bGUiLCAgICAgICAgIElETV9DRUxMIAogICAgICAgICAgICBNRU5VSVRFTSAiJmxpZ25lIiwgICAgICAgICAgSURNX1JPVwogICAgICAgICAgICBNRU5VSVRFTSAiYyZvbG9ubmUiLCAgICAgICBJRE1fQ09MVU1OCiAgICAgICAgICAgIE1FTlVJVEVNICImdGFibGUiLCAgICAgICAgSURNX1RBQkxFU0VMRUNUCiAgICAgICAgfQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJQcm9wcmnpdOlzIGRlIGxhICZjZWxsdWxlIiwgIElETV9DRUxMUFJPUEVSVElFUwogICAgICAgIE1FTlVJVEVNICJQcm9wcmnpdOlzIGRlIGxhICZ0YWJsZSIsIElETV9UQUJMRVBST1BFUlRJRVMKICAgIH0KCiAgICBQT1BVUCAiMURTaXRlIFNlbGVjdCIKICAgIHsKICAgICAgICBNRU5VSVRFTSAiQ291cGUmciIsICAgICAgICBJRE1fQ1VUCiAgICAgICAgTUVOVUlURU0gIkNvcGkmZXIiLCAgICAgICBJRE1fQ09QWQogICAgICAgIE1FTlVJVEVNICJDb2xsZXIiLCAgICAgICBJRE1fUEFTVEUKICAgICAgICBNRU5VSVRFTSAiJlPpbGVjdGlvbm5lciB0b3V0IiwgSURNX1NFTEVDVEFMTCAKICAgICAgICBNRU5VSVRFTSAiJkltcHJpbWVyIiwgICAgICBJRE1fUFJJTlQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgIH0KCiAgICBQT1BVUCAiQW5jaG9yIgogICAgewogICAgICAgIE1FTlVJVEVNICJPdSZ2cmlyIiwgICAgICAgICAgICAgICAgSURNX09QRU5MSU5LCiAgICAgICAgTUVOVUlURU0gIk91dnJpciBkYW5zIHVuZSAmbm91dmVsbGUgZmVu6nRyZSIsICBJRE1fT1BFTklOTkVXV0lORE9XCiAgICAgICAgTUVOVUlURU0gIkVucmVnaXN0cmVyIGxhIGNpYmxlIHNvJnVzLi4uIiwgICBJRE1fU0FWRVRBUkdFVEFTCiAgICAgICAgTUVOVUlURU0gIkltcHJpbWVyIGxhIGNpYiZsZSIsICAgICAgICBJRE1fUFJJTlRUQVJHRVQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQ291cGUmciIsICAgICAgICAgICAgICAgICAgSURNX0NVVAogICAgICAgIE1FTlVJVEVNICJDb3BpJmVyIiwgICAgICAgICAgICAgICAgSURNX0NPUFkKICAgICAgICBNRU5VSVRFTSAiQ29waWVyIGxlIHImYWNjb3VyY2kiLCAgICAgICBJRE1fQ09QWVNIT1JUQ1VUCiAgICAgICAgTUVOVUlURU0gIkMmb2xsZXIiLCAgICAgICAgICAgICAgIElETV9QQVNURQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJBam91dGVyIGF1JnggRmF2b3Jpcy4uLiIsIElETV9BRERUT0ZBVk9VUklURVMKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlByb3Byael06XMiLCAgICAgICAgICBJRE1fUFJPUEVSVElFUwogICAgfQoKICAgIFBPUFVQICJDb250ZXh0IFVua25vd24iCiAgICB7CiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICB9CgogICAgUE9QVVAgIkRZTlNSQyBJbWFnZSIKICAgIHsKICAgICAgICBNRU5VSVRFTSAiT3UmdnJpciBsZSBsaWVuIiwgICAgICAgICAgICAgICBJRE1fT1BFTkxJTksKICAgICAgICBNRU5VSVRFTSAiT3V2cmlyIGxlIGxpZW4gZGFucyB1bmUgJm5vdXZlbGxlIGZlbup0cmUiLCBJRE1fT1BFTklOTkVXV0lORE9XCiAgICAgICAgTUVOVUlURU0gIkVucmVnaXN0cmVyIGxhIGNpYmxlIHNvJnVzLi4uIiwgICAgICAgSURNX1NBVkVUQVJHRVRBUwogICAgICAgIE1FTlVJVEVNICJJbXByaW1lciBsYSBjaWImbGUiLCAgICAgICAgICAgIElETV9QUklOVFRBUkdFVAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJBZmZpYyZoZXIgbCdpbWFnZSIsICAgICAgICAgICAgSURNX1NIT1dQSUNUVVJFCiAgICAgICAgTUVOVUlURU0gIkVucmVnaXN0cmVyIGxhIHZpZOlvICZzb3VzLi4uIiwgICAgICAgIElETV9TQVZFUElDVFVSRUFTCiAgICAgICAgTUVOVUlURU0gIskmdGFibGlyIGVuIHRhbnQgcXUn6WzpbWVudCBkJ2FycmnocmUtcGxhbiIsICAgICAgIElETV9TRVRBU0JBQ0tHUk9VTkQKICAgICAgICBNRU5VSVRFTSAiROlmaW5pciBjb21tZSDpbOltZW50IGR1ICZCdXJlYXUuLi4iLCAgSURNX1NFVEFTREVTS1RPUElURU0KICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQ291cGUmciIsICAgICAgICAgICAgICAgICAgICAgSURNX0NVVAogICAgICAgIE1FTlVJVEVNICJDb3BpJmVyIiwgICAgICAgICAgICAgICAgICAgIElETV9DT1BZCiAgICAgICAgTUVOVUlURU0gIkNvcGllciBsZSByJmFjY291cmNpIiwgICAgICAgICAgIElETV9DT1BZU0hPUlRDVVQKICAgICAgICBNRU5VSVRFTSAiQyZvbGxlciIsICAgICAgICAgICAgICAgICAgIElETV9QQVNURQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJBam91dGVyIGF1JnggRmF2b3Jpcy4uLiIsICAgICBJRE1fQUREVE9GQVZPVVJJVEVTCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkxlY3R1cmUiLCAgICAgICAgICAgICAgICAgICAgIElETV9QTEFZCiAgICAgICAgTUVOVUlURU0gIkFycup0IiwgICAgICAgICAgICAgICAgICAgICBJRE1fRFlOU1JDU1RPUAogICAgICAgIE1FTlVJVEVNICImUHJvcHJp6XTpcyIsICAgICAgICAgICAgICBJRE1fUFJPUEVSVElFUwogICAgfQoKICAgIFBPUFVQICJBUlQgSW1hZ2UiCiAgICB7CiAgICAgICAgTUVOVUlURU0gIk91JnZyaXIgbGUgbGllbiIsICAgICAgICAgICAgICAgSURNX09QRU5MSU5LCiAgICAgICAgTUVOVUlURU0gIk91dnJpciBsZSBsaWVuIGRhbnMgdW5lICZub3V2ZWxsZSBmZW7qdHJlIiwgSURNX09QRU5JTk5FV1dJTkRPVwogICAgICAgIE1FTlVJVEVNICJFbnJlZ2lzdHJlciBsYSBjaWJsZSBzbyZ1cy4uLiIsICAgICAgIElETV9TQVZFVEFSR0VUQVMKICAgICAgICBNRU5VSVRFTSAiSW1wcmltZXIgbGEgY2liJmxlIiwgICAgICAgICAgICBJRE1fUFJJTlRUQVJHRVQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQWZmaWMmaGVyIGwnaW1hZ2UiLCAgICAgICAgICAgIElETV9TSE9XUElDVFVSRQogICAgICAgIE1FTlVJVEVNICJFbnJlZ2lzdHJlciBsJ2ltYWdlICZzb3VzLi4uIiwgICAgICBJRE1fU0FWRVBJQ1RVUkVBUwogICAgICAgIE1FTlVJVEVNICLJJnRhYmxpciBlbiB0YW50IHF1J+ls6W1lbnQgZCdhcnJp6HJlLXBsYW4iLCAgICAgICBJRE1fU0VUQVNCQUNLR1JPVU5ECiAgICAgICAgTUVOVUlURU0gIkTpZmluaXIgY29tbWUg6WzpbWVudCBkdSAmQnVyZWF1Li4uIiwgIElETV9TRVRBU0RFU0tUT1BJVEVNCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkNvdXBlJnIiLCAgICAgICAgICAgICAgICAgICAgIElETV9DVVQKICAgICAgICBNRU5VSVRFTSAiQ29waSZlciIsICAgICAgICAgICAgICAgICAgICBJRE1fQ09QWQogICAgICAgIE1FTlVJVEVNICJDb3BpZXIgbGUgciZhY2NvdXJjaSIsICAgICAgICAgICBJRE1fQ09QWVNIT1JUQ1VUCiAgICAgICAgTUVOVUlURU0gIkMmb2xsZXIiLCAgICAgICAgICAgICAgICAgICBJRE1fUEFTVEUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQWpvdXRlciBhdSZ4IEZhdm9yaXMuLi4iLCAgICAgSURNX0FERFRPRkFWT1VSSVRFUwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJMZWN0dXJlIiwgICAgICAgICAgICAgICAgICAgICBJRE1fUExBWQogICAgICAgIE1FTlVJVEVNICJBcnLqdCIsICAgICAgICAgICAgICAgICAgICAgSURNX0RZTlNSQ1NUT1AKICAgICAgICBNRU5VSVRFTSAiUmV0b3VyIGFycmnocmUiLCAgICAgICAgICAgICAgICAgICBJRE1fUkVXSU5ECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZQcm9wcmnpdOlzIiwgICAgICAgICAgICAgIElETV9QUk9QRVJUSUVTCiAgICB9CgogICAgUE9QVVAgIkRlYnVnIgogICAgewogICAgICAgIE1FTlVJVEVNICJUcmFjZSBUYWdzIiwgICAgICAgICBJRE1fVFJBQ0VUQUdTIAogICAgICAgIE1FTlVJVEVNICJSZXNvdXJjZSBGYWlsdXJlcyIsICBJRE1fUkVTT1VSQ0VGQUlMVVJFUwogICAgICAgIE1FTlVJVEVNICJEdW1wIFRyYWNraW5nIEluZm8iLCBJRE1fRFVNUFRSQUNLSU5HSU5GTwogICAgICAgIE1FTlVJVEVNICJEZWJ1ZyBCcmVhayIsICAgICAgICBJRE1fREVCVUdCUkVBSwogICAgICAgIE1FTlVJVEVNICJEZWJ1ZyBWaWV3IiwgICAgICAgICBJRE1fREVCVUdWSUVXCiAgICAgICAgTUVOVUlURU0gIkR1bXAgVHJlZSIsICAgICAgICAgIElETV9EVU1QVFJFRQogICAgICAgIE1FTlVJVEVNICJEdW1wIExpbmVzIiwgICAgICAgICBJRE1fRFVNUExJTkVTCiAgICAgICAgTUVOVUlURU0gIkR1bXAgRGlzcGxheVRyZWUiLCAgIElETV9EVU1QRElTUExBWVRSRUUKICAgICAgICBNRU5VSVRFTSAiRHVtcCBGb3JtYXRDYWNoZXMiLCAgSURNX0RVTVBGT1JNQVRDQUNIRVMKICAgICAgICBNRU5VSVRFTSAiRHVtcCBMYXlvdXRSZWN0cyIsICAgSURNX0RVTVBMQVlPVVRSRUNUUwogICAgICAgIE1FTlVJVEVNICJNZW1vcnkgTW9uaXRvciIsICAgICBJRE1fTUVNT1JZTU9OSVRPUgogICAgICAgIE1FTlVJVEVNICJQZXJmb3JtYW5jZSBNZXRlcnMiLCBJRE1fUEVSRk9STUFOQ0VNRVRFUlMKICAgICAgICBNRU5VSVRFTSAiU2F2ZSBIVE1MIiwgICAgICAgICAgSURNX1NBVkVIVE1MCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZCcm93c2UgVmlldyIsICAgICAgIElETV9CUk9XU0VWSUVXCiAgICAgICAgTUVOVUlURU0gIiZFZGl0IFZpZXciLCAgICAgICAgIElETV9FRElUVklFVwogICAgfQoKICAgIFBPUFVQICJWZXJ0aWNhbCBTY3JvbGxiYXIiCiAgICB7CiAgICAgICAgTUVOVUlURU0gIkTpZmlsZW1lbnQgaWNpIiwgIElETV9TQ1JPTExIRVJFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkhhdXQiLCAgICAgICAgICBJRE1fVE9QCiAgICAgICAgTUVOVUlURU0gIkJhcyIsICAgICAgIElETV9CT1RUT00KICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiUGFnZSBwculj6WRlbnRlIiwgICAgICBJRE1fUEFHRVVQCiAgICAgICAgTUVOVUlURU0gIlBhZ2Ugc3VpdmFudGUiLCAgICBJRE1fUEFHRURPV04KICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiROlmaWxlbWVudCB2ZXJzIGxlIGhhdXQiLCAgICBJRE1fU0NST0xMVVAKICAgICAgICBNRU5VSVRFTSAiROlmaWxlbWVudCB2ZXJzIGxlIGJhcyIsICBJRE1fU0NST0xMRE9XTgogICAgfQoKICAgIFBPUFVQICJIb3Jpem9udGFsIFNjcm9sbGJhciIKICAgIHsKICAgICAgICBNRU5VSVRFTSAiROlmaWxlbWVudCBpY2kiLCAgSURNX1NDUk9MTEhFUkUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiQ/R06SBnYXVjaGUiLCAgICBJRE1fTEVGVEVER0UKICAgICAgICBNRU5VSVRFTSAiQ/R06SBkcm9pdCIsICAgSURNX1JJR0hURURHRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICJQYWdlIHZlcnMgbGEgZ2F1Y2hlIiwgICAgSURNX1BBR0VMRUZUCiAgICAgICAgTUVOVUlURU0gIlBhZ2UgdmVycyBsYSBkcm9pdGUiLCAgIElETV9QQUdFUklHSFQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiROlmaWxlbWVudCB2ZXJzIGxhIGdhdWNoZSIsICBJRE1fU0NST0xMTEVGVAogICAgICAgIE1FTlVJVEVNICJE6WZpbGVtZW50IHZlcnMgbGEgZHJvaXRlIiwgSURNX1NDUk9MTFJJR0hUCiAgICB9Cn0K