LyoKICogIFN3ZWRpc2ggcmVzb3VyY2VzIGZvciBUYXNrIE1hbmFnZXIKICoKICogIENvcHlyaWdodCAyMDA5IEFuZGVycyBKb25zc29uCiAqCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfU1dFRElTSCwgU1VCTEFOR19ORVVUUkFMCgovKgogTWVudQoqLwoKSURSX1RBU0tNQU5BR0VSIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICImQXJraXYiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImTnkgYWt0aXZpdGV0IChL9nIuLi4pIiwgICAgICAgICAgICAgICBJRF9GSUxFX05FVwogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImQXZzbHV0YSBBa3Rpdml0ZXRzaGFudGVyYXJlbiIsICAgICAgICBJRF9GSUxFX0VYSVQKICAgIEVORAogICAgUE9QVVAgIiZJbnN05GxsbmluZ2FyIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJkFsbHRpZCD2dmVyc3QiLCAgICAgICAgICAgICAgICAgICBJRF9PUFRJT05TX0FMV0FZU09OVE9QCiAgICAgICAgLCBDSEVDS0VECiAgICAgICAgTUVOVUlURU0gIiZNaW5pbWVyYSB2aWQgYW525G5kbmluZyIsICAgICAgICAgSURfT1BUSU9OU19NSU5JTUlaRU9OVVNFCiAgICAgICAgLCBDSEVDS0VECiAgICAgICAgTUVOVUlURU0gIiZE9mxqIHZpZCBtaW5pbWVyaW5nIiwgICAgICAgICAgICAgSURfT1BUSU9OU19ISURFV0hFTk1JTklNSVpFRAogICAgICAgICwgQ0hFQ0tFRAogICAgICAgIE1FTlVJVEVNICImVmlzYSAxNi1iaXRhcnNha3Rpdml0ZXRlciIsICAgICAgIElEX09QVElPTlNfU0hPVzE2QklUVEFTS1MKICAgICAgICAsIENIRUNLRUQKICAgIEVORAogICAgUE9QVVAgIiZWaXNhIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiVXBwJmRhdGVyYSBudSIsICAgICAgICAgICAgICAgIElEX1ZJRVdfUkVGUkVTSAogICAgICAgIFBPUFVQICImVXBwZGF0ZXJpbmdzZnJla3ZlbnMiCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIiZI9mciLCAgICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfVVBEQVRFU1BFRURfSElHSAogICAgICAgICAgICBNRU5VSVRFTSAiJk5vcm1hbCIsICAgICAgICAgICAgICAgICAgSURfVklFV19VUERBVEVTUEVFRF9OT1JNQUwKICAgICAgICAgICAgLCBDSEVDS0VECiAgICAgICAgICAgIE1FTlVJVEVNICImTOVnIiwgICAgICAgICAgICAgICAgICAgICBJRF9WSUVXX1VQREFURVNQRUVEX0xPVwogICAgICAgICAgICBNRU5VSVRFTSAiJlBhdXNhZCIsICAgICAgICAgICAgICAgICAgSURfVklFV19VUERBVEVTUEVFRF9QQVVTRUQKCiAgICAgICAgRU5ECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlMmdG9yYSBpa29uZXIiLCAgICAgICAgICAgICAgSURfVklFV19MQVJHRQogICAgICAgIE1FTlVJVEVNICJTJm3lIGlrb25lciIsICAgICAgICAgICAgICAgIElEX1ZJRVdfU01BTEwKICAgICAgICBNRU5VSVRFTSAiJkRldGFsamVyIiwgICAgICAgICAgICAgICAgICBJRF9WSUVXX0RFVEFJTFMsIENIRUNLRUQKICAgICAgICBNRU5VSVRFTSAiJlbkbGoga29sdW1uZXIuLi4iLCAgICAgICAgICBJRF9WSUVXX1NFTEVDVENPTFVNTlMKICAgICAgICBQT1BVUCAiJlByb2Nlc3Nvcmhpc3RvcmlrIgogICAgICAgIEJFR0lOCiAgICAgICAgICAgIE1FTlVJVEVNICJFbiBncmFmLCBhbGxhIHByJm9jZXNzb3JlciIsICAgICAgSURfVklFV19DUFVISVNUT1JZX09ORUdSQVBIQUxMCgogICAgICAgICAgICBNRU5VSVRFTSAiRW4gZ3JhZiAmcGVyIHByb2Nlc3NvciIsICAgICAgICAgIElEX1ZJRVdfQ1BVSElTVE9SWV9PTkVHUkFQSFBFUkNQVQogICAgICAgICAgICAsIENIRUNLRUQKICAgICAgICBFTkQKICAgICAgICBNRU5VSVRFTSAiVmkmc2Ega2VybmVsdGlkZXIiLCAgICAgICAgICBJRF9WSUVXX1NIT1dLRVJORUxUSU1FUwogICAgRU5ECiAgICBQT1BVUCAiJkb2bnN0ZXIiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICJPcmRuYSAmaG9yaXNvbnRlbGx0IiwgICAgICAgICBJRF9XSU5ET1dTX1RJTEVIT1JJWk9OVEFMTFkKICAgICAgICBNRU5VSVRFTSAiT3JkbmEgJnZlcnRpa2FsdCIsICAgICAgICAgICAgSURfV0lORE9XU19USUxFVkVSVElDQUxMWQogICAgICAgIE1FTlVJVEVNICImTWluaW1lcmEiLCAgICAgICAgICAgICAgICAgICBJRF9XSU5ET1dTX01JTklNSVpFCiAgICAgICAgTUVOVUlURU0gIk1hJnhpbWVyYSIsICAgICAgICAgICAgICAgICAgIElEX1dJTkRPV1NfTUFYSU1JWkUKICAgICAgICBNRU5VSVRFTSAiJtZ2ZXJsYXBwYW5kZSIsICAgICAgICAgICAgICAgSURfV0lORE9XU19DQVNDQURFCiAgICAgICAgTUVOVUlURU0gIlYmaXNhIPZ2ZXJzdCIsICAgICAgICAgICAgICAgIElEX1dJTkRPV1NfQlJJTkdUT0ZST05UCiAgICBFTkQKICAgIFBPUFVQICImSGrkbHAiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICLEbW5lbiBpICZoauRscCBm9nIgQWt0aXZpdGV0c2hhbnRlcmFyZW4iLCAgIElEX0hFTFBfVE9QSUNTCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZPbSBBa3Rpdml0ZXRzaGFudGVyYXJlbiIsICAgICAgICAgSURfSEVMUF9BQk9VVAogICAgRU5ECkVORAoKSURSX1dJTkRPV1NNRU5VIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIE1FTlVJVEVNICJPcmRuYSAmaG9yaXNvbnRlbGx0IiwgICAgICAgSURfV0lORE9XU19USUxFSE9SSVpPTlRBTExZCiAgICBNRU5VSVRFTSAiT3JkbmEgJnZlcnRpa2FsdCIsICAgICAgICAgIElEX1dJTkRPV1NfVElMRVZFUlRJQ0FMTFkKICAgIE1FTlVJVEVNICImTWluaW1lcmEiLCAgICAgICAgICAgICAgICAgSURfV0lORE9XU19NSU5JTUlaRQogICAgTUVOVUlURU0gIk1hJnhpbWVyYSIsICAgICAgICAgICAgICAgICBJRF9XSU5ET1dTX01BWElNSVpFCiAgICBNRU5VSVRFTSAiJtZ2ZXJsYXBwYW5kZSIsICAgICAgICAgICAgIElEX1dJTkRPV1NfQ0FTQ0FERQogICAgTUVOVUlURU0gIlYmaXNhIPZ2ZXJzdCIsICAgICAgICAgICAgICBJRF9XSU5ET1dTX0JSSU5HVE9GUk9OVApFTkQKCklEUl9BUFBMSUNBVElPTl9QQUdFX0NPTlRFWFQxIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICJEVU1NWSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIiZOeSBha3Rpdml0ZXQgKEv2ci4uLikiLCAgICAgIElEX0ZJTEVfTkVXCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZTdG9yYSBpa29uZXIiLCAgICAgICAgICAgICAgIElEX1ZJRVdfTEFSR0UKICAgICAgICBNRU5VSVRFTSAiUyZt5SBpa29uZXIiLCAgICAgICAgICAgICAgICAgSURfVklFV19TTUFMTAogICAgICAgIE1FTlVJVEVNICImRGV0YWxqZXIiLCAgICAgICAgICAgICAgICAgICBJRF9WSUVXX0RFVEFJTFMsIENIRUNLRUQKICAgIEVORApFTkQKCklEUl9BUFBMSUNBVElPTl9QQUdFX0NPTlRFWFQyIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICJEVU1NWSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIkImeXQgdGlsbCIsICAgICAgICAgICAgICAgICAgSURfQVBQTElDQVRJT05fUEFHRV9TV0lUQ0hUTwogICAgICAgIE1FTlVJVEVNICJWJmlzYSD2dmVyc3QiLCAgICAgICAgICAgICAgIElEX1dJTkRPV1NfQlJJTkdUT0ZST05UCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIk9yZG5hICZob3Jpc29udGVsbHQiLCAgICAgICAgSURfV0lORE9XU19USUxFSE9SSVpPTlRBTExZCiAgICAgICAgTUVOVUlURU0gIk9yZG5hICZ2ZXJ0aWthbHQiLCAgICAgICAgICAgSURfV0lORE9XU19USUxFVkVSVElDQUxMWQogICAgICAgIE1FTlVJVEVNICImTWluaW1lcmEiLCAgICAgICAgICAgICAgICAgIElEX1dJTkRPV1NfTUlOSU1JWkUKICAgICAgICBNRU5VSVRFTSAiTWEmeGltZXJhIiwgICAgICAgICAgICAgICAgICBJRF9XSU5ET1dTX01BWElNSVpFCiAgICAgICAgTUVOVUlURU0gIibWdmVybGFwcGFuZGUiLCAgICAgICAgICAgICAgSURfV0lORE9XU19DQVNDQURFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIkF2c2x1dGEgYWt0aXZpdCZldCIsICAgICAgICAgSURfQVBQTElDQVRJT05fUEFHRV9FTkRUQVNLCiAgICAgICAgTUVOVUlURU0gIiZH5SB0aWxsIHByb2Nlc3MiLCAgICAgICAgICAgSURfQVBQTElDQVRJT05fUEFHRV9HT1RPUFJPQ0VTUwogICAgRU5ECkVORAoKSURSX1RSQVlfUE9QVVAgTUVOVSBESVNDQVJEQUJMRQpCRUdJTgogICAgUE9QVVAgIkRVTU1ZIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiJsV0ZXJzdORsbCIsICAgICAgICAgICAgICAgICAgSURfUkVTVE9SRQogICAgICAgIE1FTlVJVEVNICImU3TkbmciLCAgICAgICAgICAgICAgICAgICAgICBJRF9GSUxFX0VYSVQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJkFsbHRpZCD2dmVyc3QiLCAgICAgICAgICAgICAgSURfT1BUSU9OU19BTFdBWVNPTlRPUAogICAgRU5ECkVORAoKSURSX1BST0NFU1NfUEFHRV9DT05URVhUIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICAgIFBPUFVQICJEVU1NWSIKICAgIEJFR0lOCiAgICAgICAgTUVOVUlURU0gIkF2c2x1dGEgcHJvYyZlc3MiLCAgICAgICAgICAgICAgSURfUFJPQ0VTU19QQUdFX0VORFBST0NFU1MKICAgICAgICBNRU5VSVRFTSAiQXZzbHUmdGEgcHJvY2Vzc3Ry5GQiLCAgICAgICAgICBJRF9QUk9DRVNTX1BBR0VfRU5EUFJPQ0VTU1RSRUUKCiAgICAgICAgTUVOVUlURU0gIiZGZWxz9msiLCAgICAgICAgICAgICAgICAgICAgICAgSURfUFJPQ0VTU19QQUdFX0RFQlVHCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgUE9QVVAgIkFuZ2UgJnByaW9yaXRldCIKICAgICAgICBCRUdJTgogICAgICAgICAgICBNRU5VSVRFTSAiJlJlYWx0aWQiLCAgICAgICAgICAgICAgICAgICBJRF9QUk9DRVNTX1BBR0VfU0VUUFJJT1JJVFlfUkVBTFRJTUUKCiAgICAgICAgICAgIE1FTlVJVEVNICImSPZnIiwgICAgICAgICAgICAgICAgICAgICAgIElEX1BST0NFU1NfUEFHRV9TRVRQUklPUklUWV9ISUdICgogICAgICAgICAgICBNRU5VSVRFTSAiJtZ2ZXIgbm9ybWFsIiwgICAgICAgICAgICAgICBJRF9QUk9DRVNTX1BBR0VfU0VUUFJJT1JJVFlfQUJPVkVOT1JNQUwKCiAgICAgICAgICAgIE1FTlVJVEVNICImTm9ybWFsIiwgICAgICAgICAgICAgICAgICAgIElEX1BST0NFU1NfUEFHRV9TRVRQUklPUklUWV9OT1JNQUwKCiAgICAgICAgICAgIE1FTlVJVEVNICImVW5kZXIgbm9ybWFsIiwgICAgICAgICAgICAgIElEX1BST0NFU1NfUEFHRV9TRVRQUklPUklUWV9CRUxPV05PUk1BTAoKICAgICAgICAgICAgTUVOVUlURU0gIiZM5WciLCAgICAgICAgICAgICAgICAgICAgICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX0xPVwoKICAgICAgICBFTkQKICAgICAgICBNRU5VSVRFTSAiU2V0ICZBZmZpbml0eS4uLiIsICAgICAgICAgICAgSURfUFJPQ0VTU19QQUdFX1NFVEFGRklOSVRZCglNRU5VSVRFTSAiJlJlZGlnZXJhIGZlbHP2a25pbmdza2FuYWxlci4uLiIsCUlEX1BST0NFU1NfUEFHRV9ERUJVR0NIQU5ORUxTCiAgICBFTkQKRU5ECgovKgogRGlhbG9nCiovCgpJRERfVEFTS01HUl9ESUFMT0cgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNjQsIDI0NgpTVFlMRSBEU19DRU5URVIgfCBXU19NSU5JTUlaRUJPWCB8IFdTX01BWElNSVpFQk9YIHwgV1NfUE9QVVAgfAogICAgV1NfQ0xJUFNJQkxJTkdTIHwgV1NfQ0xJUENISUxEUkVOIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUgfAogICAgV1NfVEhJQ0tGUkFNRQpDQVBUSU9OICJBa3Rpdml0ZXRzaGFudGVyYXJlbiIKTUVOVSBJRFJfVEFTS01BTkFHRVIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgQ09OVFJPTCAgICAgICAgICJUYWIxIixJRENfVEFCLCJTeXNUYWJDb250cm9sMzIiLFdTX1RBQlNUT1AsMywzLDI1NywyMjgKRU5ECgpJRERfQVBQTElDQVRJT05fUEFHRSBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDI0NywgMjEwClNUWUxFIERTX0NPTlRST0wgfCBXU19DSElMRCB8IFdTX0NMSVBDSElMRFJFTgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBDT05UUk9MICAgICAgICAgIkxpc3QyIixJRENfQVBQTElTVCwiU3lzTGlzdFZpZXczMiIsTFZTX1JFUE9SVCB8CiAgICAgICAgICAgICAgICAgICAgTFZTX1NIT1dTRUxBTFdBWVMgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QLDcsNywyMzMsMTc3CiAgICBQVVNIQlVUVE9OICAgICAgIiZOeSBha3Rpdml0ZXQuLi4iLElEQ19ORVdUQVNLLDE4NywxODksNTMsMTQKICAgIFBVU0hCVVRUT04gICAgICAiJkJ5dCB0aWxsIixJRENfU1dJVENIVE8sMTMxLDE4OSw1MywxNCxXU19ESVNBQkxFRAogICAgUFVTSEJVVFRPTiAgICAgICImQXZzbHV0YSBha3Rpdml0ZXQiLElEQ19FTkRUQVNLLDc1LDE4OSw1MywxNCxXU19ESVNBQkxFRApFTkQKCklERF9QUk9DRVNTX1BBR0UgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNDcsIDIxMApTVFlMRSBEU19DT05UUk9MIHwgV1NfQ0hJTEQgfCBXU19DTElQQ0hJTERSRU4KRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgQ09OVFJPTCAgICAgICAgICJMaXN0MiIsSURDX1BST0NFU1NMSVNULCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwKICAgICAgICAgICAgICAgICAgICBMVlNfU0lOR0xFU0VMIHwgTFZTX1NIT1dTRUxBTFdBWVMgfCBMVlNfT1dORVJEQVRBIHwKICAgICAgICAgICAgICAgICAgICBXU19CT1JERVIgfCBXU19UQUJTVE9QLDcsNywyMzMsMTc3CiAgICBQVVNIQlVUVE9OICAgICAgIkF2c2x1dGEgcHJvYyZlc3MiLElEQ19FTkRQUk9DRVNTLDE3MSwxODksNjksMTQKICAgIENPTlRST0wgICAgICAgICAiVmkmc2EgcHJvY2Vzc2VyIGZy5W4gYWxsYSBhbnbkbmRhcmUiLElEQ19TSE9XQUxMUFJPQ0VTU0VTLAogICAgICAgICAgICAgICAgICAgICJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsNywxOTEsMTMwLDEwCkVORAoKLypJRERfUEVSRk9STUFOQ0VfUEFHRSBESUFMT0dFWCAwLCAwLCAyNDcsIDIxMCovCklERF9QRVJGT1JNQU5DRV9QQUdFIERJQUxPR0VYIERJU0NBUkRBQkxFICAwLCAwLCAyNDcsIDIxMApTVFlMRSBEU19DT05UUk9MIHwgV1NfQ0hJTEQgfCBXU19DTElQQ0hJTERSRU4KRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgR1JPVVBCT1ggICAgICAgICJDUFUtYW525G5kbmluZyIsSURDX0NQVV9VU0FHRV9GUkFNRSw1LDUsNjAsNTQsV1NfVEFCU1RPUCwgV1NfRVhfVFJBTlNQQVJFTlQKICAgIEdST1VQQk9YICAgICAgICAiTUVNLWFuduRuZG5pbmciLElEQ19NRU1fVVNBR0VfRlJBTUUsNSw2Myw2MCw1NCxCU19MRUZUVEVYVCwgV1NfRVhfVFJBTlNQQVJFTlQKICAgIEdST1VQQk9YICAgICAgICAiVG90YWx0IixJRENfVE9UQUxTX0ZSQU1FLDUsMTIyLDExMSwzOSwwLFdTX0VYX1RSQU5TUEFSRU5UCiAgICBHUk9VUEJPWCAgICAgICAgIlZpcnR1ZWxsdCBtaW5uZSAoSykiLElEQ19DT01NSVRfQ0hBUkdFX0ZSQU1FLDUsMTY2LDExMSwzOSwwLFdTX0VYX1RSQU5TUEFSRU5UCiAgICBHUk9VUEJPWCAgICAgICAgIkZ5c2lza3QgbWlubmUgKEspIixJRENfUEhZU0lDQUxfTUVNT1JZX0ZSQU1FLDEzMSwxMjIsMTExLDM5LDAsV1NfRVhfVFJBTlNQQVJFTlQKICAgIEdST1VQQk9YICAgICAgICAiS2VybmVsbWlubmUgKEspIixJRENfS0VSTkVMX01FTU9SWV9GUkFNRSwxMzEsMTY2LDExMSwzOSwwLFdTX0VYX1RSQU5TUEFSRU5UCiAgICBMVEVYVCAgICAgICAgICAgIkhhbmR0YWciLElEU19UT1RBTFNfSEFORExFX0NPVU5ULDEyLDEzMSwyNyw4CiAgICBMVEVYVCAgICAgICAgICAgIlRy5WRhciIsSURTX1RPVEFMU19USFJFQURfQ09VTlQsMTIsMTQwLDI3LDgKICAgIExURVhUICAgICAgICAgICAiUHJvY2Vzc2VyIixJRFNfVE9UQUxTX1BST0NFU1NfQ09VTlQsMTIsMTQ5LDM0LDgKICAgIEVESVRURVhUICAgICAgICBJRENfVE9UQUxTX0hBTkRMRV9DT1VOVCw2NSwxMzEsNDUsOCxFU19SSUdIVCB8CiAgICAgICAgICAgICAgICAgICAgRVNfUkVBRE9OTFkgfCBFU19OVU1CRVIgfCBOT1QgV1NfQk9SREVSCiAgICBFRElUVEVYVCAgICAgICAgSURDX1RPVEFMU19USFJFQURfQ09VTlQsNjUsMTQwLDQ1LDgsRVNfUklHSFQgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgRVNfTlVNQkVSIHwgTk9UIFdTX0JPUkRFUgogICAgRURJVFRFWFQgICAgICAgIElEQ19UT1RBTFNfUFJPQ0VTU19DT1VOVCw2NSwxNDksNDUsOCxFU19SSUdIVCB8CiAgICAgICAgICAgICAgICAgICAgRVNfUkVBRE9OTFkgfCBFU19OVU1CRVIgfCBOT1QgV1NfQk9SREVSCiAgICBMVEVYVCAgICAgICAgICAgIlRvdGFsdCIsSURTX0NPTU1JVF9DSEFSR0VfVE9UQUwsMTIsMTc1LDI3LDgKICAgIExURVhUICAgICAgICAgICAiR3LkbnMiLElEU19DT01NSVRfQ0hBUkdFX0xJTUlULDEyLDE4NCwyNSw4CiAgICBMVEVYVCAgICAgICAgICAgIlRvcHAiLElEU19DT01NSVRfQ0hBUkdFX1BFQUssMTIsMTkzLDM0LDgKICAgIEVESVRURVhUICAgICAgICBJRENfQ09NTUlUX0NIQVJHRV9UT1RBTCw2NSwxNzQsNDUsOCxFU19SSUdIVCB8CiAgICAgICAgICAgICAgICAgICAgRVNfUkVBRE9OTFkgfCBFU19OVU1CRVIgfCBOT1QgV1NfQk9SREVSCiAgICBFRElUVEVYVCAgICAgICAgSURDX0NPTU1JVF9DSEFSR0VfTElNSVQsNjUsMTg0LDQ1LDgsRVNfUklHSFQgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgRVNfTlVNQkVSIHwgTk9UIFdTX0JPUkRFUgogICAgRURJVFRFWFQgICAgICAgIElEQ19DT01NSVRfQ0hBUkdFX1BFQUssNjUsMTkzLDQ1LDgsRVNfUklHSFQgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgRVNfTlVNQkVSIHwgTk9UIFdTX0JPUkRFUgogICAgTFRFWFQgICAgICAgICAgICJUb3RhbHQiLElEU19QSFlTSUNBTF9NRU1PUllfVE9UQUwsMTM3LDEzMSwyNyw4CiAgICBMVEVYVCAgICAgICAgICAgIlRpbGxn5G5nbGlndCIsSURTX1BIWVNJQ0FMX01FTU9SWV9BVkFJTEFCTEUsMTM3LDE0MCwzNSw4CiAgICBMVEVYVCAgICAgICAgICAgIlN5c3RlbSBDYWNoZSIsSURTX1BIWVNJQ0FMX01FTU9SWV9TWVNURU1fQ0FDSEUsMTM3LDE0OSwzNSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1BIWVNJQ0FMX01FTU9SWV9UT1RBTCwxODUsMTMxLDQ4LDgsRVNfUklHSFQgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgRVNfTlVNQkVSIHwgTk9UIFdTX0JPUkRFUgogICAgRURJVFRFWFQgICAgICAgIElEQ19QSFlTSUNBTF9NRU1PUllfQVZBSUxBQkxFLDE4NSwxNDAsNDgsOCxFU19SSUdIVCB8CiAgICAgICAgICAgICAgICAgICAgRVNfUkVBRE9OTFkgfCBFU19OVU1CRVIgfCBOT1QgV1NfQk9SREVSCiAgICBFRElUVEVYVCAgICAgICAgSURDX1BIWVNJQ0FMX01FTU9SWV9TWVNURU1fQ0FDSEUsMTg1LDE0OSw0OCw4LEVTX1JJR0hUIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IEVTX05VTUJFUiB8IE5PVCBXU19CT1JERVIKICAgIExURVhUICAgICAgICAgICAiVG90YWx0IixJRFNfS0VSTkVMX01FTU9SWV9UT1RBTCwxMzcsMTc0LDI3LDgKICAgIExURVhUICAgICAgICAgICAiUGFnZWQiLElEU19LRVJORUxfTUVNT1JZX1BBR0VELDEzNywxODQsMzAsOAogICAgTFRFWFQgICAgICAgICAgICJOb25wYWdlZCIsSURTX0tFUk5FTF9NRU1PUllfTk9OUEFHRUQsMTM3LDE5Myw0MCw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX0tFUk5FTF9NRU1PUllfVE9UQUwsMTg1LDE3NCw0OCw4LEVTX1JJR0hUIHwKICAgICAgICAgICAgICAgICAgICBFU19SRUFET05MWSB8IEVTX05VTUJFUiB8IE5PVCBXU19CT1JERVIKICAgIEVESVRURVhUICAgICAgICBJRENfS0VSTkVMX01FTU9SWV9QQUdFRCwxODUsMTg0LDQ4LDgsRVNfUklHSFQgfAogICAgICAgICAgICAgICAgICAgIEVTX1JFQURPTkxZIHwgRVNfTlVNQkVSIHwgTk9UIFdTX0JPUkRFUgogICAgRURJVFRFWFQgICAgICAgIElEQ19LRVJORUxfTUVNT1JZX05PTlBBR0VELDE4NSwxOTMsNDgsOCxFU19SSUdIVCB8CiAgICAgICAgICAgICAgICAgICAgRVNfUkVBRE9OTFkgfCBFU19OVU1CRVIgfCBOT1QgV1NfQk9SREVSCiAgICBHUk9VUEJPWCAgICAgICAgIkhpc3RvcmlrIGb2ciBDUFUtYW525G5kbmluZyIsSURDX0NQVV9VU0FHRV9ISVNUT1JZX0ZSQU1FLDc0LDUsMTY4LDU0LDAsV1NfRVhfVFJBTlNQQVJFTlQKICAgIEdST1VQQk9YICAgICAgICAiSGlzdG9yaWsgZvZyIE1FTS1hbnbkbmRuaW5nIixJRENfTUVNT1JZX1VTQUdFX0hJU1RPUllfRlJBTUUsNzQsNjMsMTY4LDU0LDAsV1NfRVhfVFJBTlNQQVJFTlQKICAgIFBVU0hCVVRUT04gICAgICAiVmlzbmluZyBhdiBDUFUtYW525G5kbmluZyIsSURDX0NQVV9VU0FHRV9HUkFQSCwxMiwxNyw0NywzNywwLAoJCSAgICBXU19FWF9DTElFTlRFREdFCiAgICBQVVNIQlVUVE9OICAgICAgIlZpc25pbmcgYXYgTUVNLWFuduRuZG5pbmciLElEQ19NRU1fVVNBR0VfR1JBUEgsMTIsNzUsNDcsMzcsMCwKICAgICAgICAgICAgICAgICAgICBXU19FWF9DTElFTlRFREdFCiAgICBQVVNIQlVUVE9OICAgICAgIkhpc3RvcmlrIGb2ciBDUFUtYW525G5kbmluZyIsSURDX0NQVV9VU0FHRV9ISVNUT1JZX0dSQVBILDgxLDE3LAogICAgICAgICAgICAgICAgICAgIDE1MywzNywwLFdTX0VYX0NMSUVOVEVER0UKICAgIFBVU0hCVVRUT04gICAgICAiSGlzdG9yaWsgZvZyIE1FTS1hbnbkbmRuaW5nIixJRENfTUVNX1VTQUdFX0hJU1RPUllfR1JBUEgsODEsNzUsCiAgICAgICAgICAgICAgICAgICAgMTUzLDM3LDAsV1NfRVhfQ0xJRU5URURHRQpFTkQKCklERF9ERUJVR19DSEFOTkVMU19ESUFMT0cgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyNDcsIDIxMApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJGZWxz9mtuaW5nc2thbmFsZXIiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIENPTlRST0wgICAgICAgICAiTGlzdDIiLElEQ19ERUJVR19DSEFOTkVMU19MSVNULCJTeXNMaXN0VmlldzMyIixMVlNfUkVQT1JUIHwKICAgICAgICAgICAgICAgICAgICBMVlNfU0lOR0xFU0VMIHwgTFZTX1NIT1dTRUxBTFdBWVMgfCBXU19CT1JERVIgfCBXU19UQUJTVE9QIHwKCQkgICAgTFZTX1NPUlRBU0NFTkRJTkcsNyw3LDIzMywxNzcKICAgIFBVU0hCVVRUT04gICAgICAiU3TkbmciLElET0ssMTcxLDE4OSw2OSwxNApFTkQKCklERF9BRkZJTklUWV9ESUFMT0cgRElBTE9HIERJU0NBUkRBQkxFICAwLCAwLCAyMzEsIDE1NApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJQcm9jZXNzbORrdHNza2FwIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDEyMCwxMzMsNTAsMTQKICAgIFBVU0hCVVRUT04gICAgICAiQXZicnl0IixJRENBTkNFTCwxNzQsMTMzLDUwLDE0CiAgICBMVEVYVCAgICAgICAgICAgIkluc3TkbGxuaW5nZW4gZvZyIHByb2Nlc3Ns5Gt0c3NrYXAgYmVzdORtbWVyIHZpbGthIHByb2Nlc3NvcmVyIHByb2Nlc3NlbiB0aWxs5XRzIGv2cmEgcOUuIiwKICAgICAgICAgICAgICAgICAgICBJRENfU1RBVElDLDUsNSwyMjAsMTYKICAgIENPTlRST0wgICAgICAgICAiUHJvY2Vzc29yIDAiLElEQ19DUFUwLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsCiAgICAgICAgICAgICAgICAgICAgMTEsMjgsMzcsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJDUFUgMSIsSURDX0NQVTEsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfRElTQUJMRUQgfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMTEsNDEsMzcsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJDUFUgMiIsSURDX0NQVTIsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfRElTQUJMRUQgfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMTEsNTQsMzcsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJDUFUgMyIsSURDX0NQVTMsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfRElTQUJMRUQgfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMTEsNjcsMzcsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJDUFUgNCIsSURDX0NQVTQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfRElTQUJMRUQgfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMTEsODAsMzcsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJDUFUgNSIsSURDX0NQVTUsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfRElTQUJMRUQgfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMTEsOTMsMzcsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJDUFUgNiIsSURDX0NQVTYsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwgV1NfRElTQUJMRUQgfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsMTEsMTA2LDM3LDEwCgkJICAgIENPTlRST0wgICAgICAgICAiQ1BVIDciLElEQ19DUFU3LCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8IFdTX0RJU0FCTEVEIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDExLDExOSwzNywxMAoJCSAgICBDT05UUk9MICAgICAgICAgIkNQVSA4IixJRENfQ1BVOCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19ESVNBQkxFRCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCw2MSwyOCwzNywxMAoJCSAgICBDT05UUk9MICAgICAgICAgIkNQVSA5IixJRENfQ1BVOSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfCBXU19ESVNBQkxFRCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCw2MSw0MSwzNywxMAoJCSAgICBDT05UUk9MICAgICAgICAgIkNQVSAxMCIsSURDX0NQVTEwLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDYxLDU0LDQxLDEwCgkJICAgIENPTlRST0wgICAgICAgICAiQ1BVIDExIixJRENfQ1BVMTEsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsNjEsNjcsNDEsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJDUFUgMTIiLElEQ19DUFUxMiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCw2MSw4MCw0MSwxMAoJCSAgICBDT05UUk9MICAgICAgICAgIkNQVSAxMyIsSURDX0NQVTEzLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDYxLDkzLDQxLDEwCgkJICAgIENPTlRST0wgICAgICAgICAiQ1BVIDE0IixJRENfQ1BVMTQsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsNjEsMTA2LDQxLDEwCgkJICAgIENPTlRST0wgICAgICAgICAiQ1BVIDE1IixJRENfQ1BVMTUsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsNjEsMTE5LDQxLDEwCgkJICAgIENPTlRST0wgICAgICAgICAiQ1BVIDE2IixJRENfQ1BVMTYsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTE2LDI4LDQxLDEwCgkJICAgIENPTlRST0wgICAgICAgICAiQ1BVIDE3IixJRENfQ1BVMTcsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTE2LDQxLDQxLDEwCgkJICAgIENPTlRST0wgICAgICAgICAiQ1BVIDE4IixJRENfQ1BVMTgsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTE2LDU0LDQxLDEwCgkJICAgIENPTlRST0wgICAgICAgICAiQ1BVIDE5IixJRENfQ1BVMTksIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTE2LDY3LDQxLDEwCgkJICAgIENPTlRST0wgICAgICAgICAiQ1BVIDIwIixJRENfQ1BVMjAsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTE2LDgwLDQxLDEwCgkJICAgIENPTlRST0wgICAgICAgICAiQ1BVIDIxIixJRENfQ1BVMjEsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTE2LDkzLDQxLDEwCgkJICAgIENPTlRST0wgICAgICAgICAiQ1BVIDIyIixJRENfQ1BVMjIsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTE2LDEwNiw0MSwxMAoJCSAgICBDT05UUk9MICAgICAgICAgIkNQVSAyMyIsSURDX0NQVTIzLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfRElTQUJMRUQgfCBXU19UQUJTVE9QLDExNiwxMTksNDEsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJDUFUgMjQiLElEQ19DUFUyNCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxNzUsMjgsNDEsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJDUFUgMjUiLElEQ19DUFUyNSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxNzUsNDEsNDEsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJDUFUgMjYiLElEQ19DUFUyNiwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxNzUsNTQsNDEsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJDUFUgMjciLElEQ19DUFUyNywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxNzUsNjcsNDEsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJDUFUgMjgiLElEQ19DUFUyOCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxNzUsODAsNDEsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJDUFUgMjkiLElEQ19DUFUyOSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxNzUsOTMsNDEsMTAKCQkgICAgQ09OVFJPTCAgICAgICAgICJDUFUgMzAiLElEQ19DUFUzMCwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCwxNzUsMTA2LDQxLDEwCgkJICAgIENPTlRST0wgICAgICAgICAiQ1BVIDMxIixJRENfQ1BVMzEsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19ESVNBQkxFRCB8IFdTX1RBQlNUT1AsMTc1LDExOSw0MSwxMApFTkQKCklERF9DT0xVTU5TX0RJQUxPRyBESUFMT0cgRElTQ0FSREFCTEUgIDAsIDAsIDE5NSwgMTk5ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIlbkbGoga29sdW1uZXIiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICAgIERFRlBVU0hCVVRUT04gICAiT0siLElET0ssODQsMTc4LDUwLDE0CiAgICBQVVNIQlVUVE9OICAgICAgIkF2YnJ5dCIsSURDQU5DRUwsMTM4LDE3OCw1MCwxNAogICAgTFRFWFQgICAgICAgICAgICJW5GxqIGtvbHVtbmVyIGF0dCB2aXNhcyBw5SBwcm9jZXNzaWRhbiBpIGFrdGl2aXRldHNoYW50ZXJhcmVuLiIsCiAgICAgICAgICAgICAgICAgICAgSURDX1NUQVRJQyw3LDcsMTgxLDE3CiAgICBDT05UUk9MICAgICAgICAgIkImaWxkbmFtbiIsSURDX0lNQUdFTkFNRSwiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX0RJU0FCTEVEIHwgV1NfVEFCU1RPUCw3LDI4LDU2LDEwCiAgICBDT05UUk9MICAgICAgICAgIiZQSUQgKFByb2Nlc3NpZGVudGlmaWVyYXJlKSIsSURDX1BJRCwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDcsMzksOTUsMTAKICAgIENPTlRST0wgICAgICAgICAiJkNQVS1hbnbkbmRuaW5nIixJRENfQ1BVVVNBR0UsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDcsNTAsODUsMTAKICAgIENPTlRST0wgICAgICAgICAiQ1BVLSZ0aWQiLElEQ19DUFVUSU1FLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCw3LDYxLDY1LDEwCiAgICBDT05UUk9MICAgICAgICAgIiZNaW5uZXNhbnbkbmRuaW5nIixJRENfTUVNT1JZVVNBR0UsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDcsNzIsNzUsMTAKICAgIENPTlRST0wgICAgICAgICAiTWlubmVzYW525G5kbmluZ3MtJmRlbHRhIixJRENfTUVNT1JZVVNBR0VERUxUQSwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDcsODMsOTUsMTAKICAgIENPTlRST0wgICAgICAgICAiSCb2Z3N0YSBtaW5uZXNhbnbkbmRuaW5nIixJRENfUEVBS01FTU9SWVVTQUdFLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsNyw5NCw5OCwxMAogICAgQ09OVFJPTCAgICAgICAgICJTaWQmZmVsIixJRENfUEFHRUZBVUxUUywiQnV0dG9uIixCU19BVVRPQ0hFQ0tCT1ggfAogICAgICAgICAgICAgICAgICAgIFdTX1RBQlNUT1AsNywxMDUsNTMsMTAKICAgIENPTlRST0wgICAgICAgICAiQW52JuRuZGFyb2JqZWt0IixJRENfVVNFUk9CSkVDVFMsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDcsMTE2LDc1LDEwCiAgICBDT05UUk9MICAgICAgICAgIkkvTy1s5HNuaW5nYXIiLElEQ19JT1JFQURTLCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCw3LDEyNyw2MCwxMAogICAgQ09OVFJPTCAgICAgICAgICJJL08gbORzdGEgYnl0ZSIsSURDX0lPUkVBREJZVEVTLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsNywxMzgsNjUsMTAKICAgIENPTlRST0wgICAgICAgICAiJlNlc3Npb25zLUlEIixJRENfU0VTU0lPTklELCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCw3LDE0OSw1MCwxMAogICAgQ09OVFJPTCAgICAgICAgICJBbnbkbmRhciZuYW1uIixJRENfVVNFUk5BTUUsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDcsMTYwLDY1LDEwCiAgICBDT05UUk9MICAgICAgICAgIlNpZGZlbHMtZGVsdCZhIixJRENfUEFHRUZBVUxUU0RFTFRBLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTA3LDI4LDcyLDEwCiAgICBDT05UUk9MICAgICAgICAgIiZWaXJ0dWVsbCBtaW5uZXNzdG9ybGVrIixJRENfVklSVFVBTE1FTU9SWVNJWkUsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxMDcsMzksODIsMTAKICAgIENPTlRST0wgICAgICAgICAiUGEmZ2VkIHBvb2wiLElEQ19QQUdFRFBPT0wsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDEwNyw1MCw1MywxMAogICAgQ09OVFJPTCAgICAgICAgICJOJm9uLXBhZ2VkIHBvb2wiLElEQ19OT05QQUdFRFBPT0wsIkJ1dHRvbiIsCiAgICAgICAgICAgICAgICAgICAgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUCwxMDcsNjEsNjcsMTAKICAgIENPTlRST0wgICAgICAgICAiQmFzcCZyaW9yaXRldCIsSURDX0JBU0VQUklPUklUWSwiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEwNyw3Miw1NSwxMAogICAgQ09OVFJPTCAgICAgICAgICJBbnRhbCAmaGFuZHRhZyIsSURDX0hBTkRMRUNPVU5ULCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMDcsODMsNTksMTAKICAgIENPTlRST0wgICAgICAgICAiQW50YWwgdHIm5WRhciIsSURDX1RIUkVBRENPVU5ULCJCdXR0b24iLEJTX0FVVE9DSEVDS0JPWCB8CiAgICAgICAgICAgICAgICAgICAgV1NfVEFCU1RPUCwxMDcsOTQsNTksMTAKICAgIENPTlRST0wgICAgICAgICAiR0RJLW9iamVrdCIsSURDX0dESU9CSkVDVFMsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDEwNywxMDUsNTUsMTAKICAgIENPTlRST0wgICAgICAgICAiSS9PLXNrcml2bmluZ2FyIixJRENfSU9XUklURVMsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDEwNywxMTYsNTksMTAKICAgIENPTlRST0wgICAgICAgICAiSS9PIGJ5dGUgc2tyaXZuYSIsSURDX0lPV1JJVEVCWVRFUywiQnV0dG9uIiwKICAgICAgICAgICAgICAgICAgICBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QLDEwNywxMjcsNjUsMTAKICAgIENPTlRST0wgICAgICAgICAiSS9PIPZ2cmlndCIsSURDX0lPT1RIRVIsIkJ1dHRvbiIsQlNfQVVUT0NIRUNLQk9YIHwKICAgICAgICAgICAgICAgICAgICBXU19UQUJTVE9QLDEwNywxMzgsNDYsMTAKICAgIENPTlRST0wgICAgICAgICAiSS9PIGJ5dGUg9nZyaWd0IixJRENfSU9PVEhFUkJZVEVTLCJCdXR0b24iLAogICAgICAgICAgICAgICAgICAgIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AsMTA3LDE0OSw2NSwxMApFTkQKCi8qCiBTdHJpbmcgVGFibGUKKi8KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfQVBQX1RJVExFICAgICAgICAgICAiQWt0aXZpdGV0c2hhbnRlcmFyZW4iCiAgICBJRENfVEFTS01HUiAgICAgICAgICAgICAiQWt0aXZpdGV0c2hhbnRlcmFyZW4iCiAgICBJRFNfUlVORExHX0NBUFRJT04gICAgICAiU2thcGEgbnkgYWt0aXZpdGV0IgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9GSUxFX05FVyAgICAgICAgICAgICAiS/ZyIGV0dCBueXR0IHByb2dyYW0iCiAgICBJRF9PUFRJT05TX0FMV0FZU09OVE9QICAiQWt0aXZpdGV0c2hhbnRlcmFyZW4gdmlzYXMgZnJhbWb2ciBhbmRyYSBwcm9ncmFtIG9tIGRlbiBpbnRlIG1pbmltZXJhcyIKICAgIElEX09QVElPTlNfTUlOSU1JWkVPTlVTRQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFrdGl2aXRldHNoYW50ZXJhcmVuIG1pbmltZXJhcyBu5HIgZHUgYnl0ZXIgdGlsbCBlbiBhbm5hbiBwcm9jZXNzIgogICAgSURfT1BUSU9OU19ISURFV0hFTk1JTklNSVpFRCAiQWt0aXZpdGV0c2hhbnRlcmFyZW4gZPZsanMgZOUgZGVuIG1pbmltZXJhcyIKICAgIElEX1ZJRVdfUkVGUkVTSCAgICAgICAgICJUdmluZ2EgYWt0aXZpdGV0c2hhbnRlcmFyZW4gYXR0IHVwcGRhdGVyYSBudSwgb2F2c2V0dCB1cHBkYXRlcmluZ3NmcmVrdmVucyIKICAgIElEX1ZJRVdfTEFSR0UgICAgICAgICAgICJBbnbkbmRlciBzdG9yYSBpa29uZXIgZvZyIGF0dCB2aXNhIGFrdGl2aXRldGVyIgogICAgSURfVklFV19TTUFMTCAgICAgICAgICAgIkFuduRuZGVyIHNt5SBpa29uZXIgZvZyIGF0dCB2aXNhIGFrdGl2aXRldGVyIgogICAgSURfVklFV19ERVRBSUxTICAgICAgICAgIlZpc2FyIGluZm9ybWF0aW9uIG9tIHZhcmplIGFrdGl2aXRldCIKICAgIElEX1ZJRVdfVVBEQVRFU1BFRURfSElHSCAiVXBwZGF0ZXJhciBkaXNwbGF5ZW4gdHblIGflbmdlciBwZXIgc2VrdW5kIgogICAgSURfVklFV19VUERBVEVTUEVFRF9OT1JNQUwgIlVwcGRhdGVyYXIgZGlzcGxheWVuIHZhcmFubmFuIHNla3VuZCIKICAgIElEX1ZJRVdfVVBEQVRFU1BFRURfTE9XICJVcHBkYXRlcmFyIGRpc3BsYXllbiB2YXIgZmrkcmRlIHNla3VuZCIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURfVklFV19VUERBVEVTUEVFRF9QQVVTRUQgIlVwcGRhdGVyYXIgaW50ZSBhdXRvbWF0aXNrdCIKICAgIElEX1dJTkRPV1NfVElMRUhPUklaT05UQUxMWQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlN05GxsZXIgdXBwIGb2bnN0cmVuIGhvcmlzb250ZWxsdCBw5SBza3JpdmJvcmRldCIKICAgIElEX1dJTkRPV1NfVElMRVZFUlRJQ0FMTFkgIlN05GxsZXIgdXBwIGb2bnN0cmVuIHZlcnRpa2FsdCBw5SBza3JpdmJvcmRldCIKICAgIElEX1dJTkRPV1NfTUlOSU1JWkUgICAgICJNaW5pbWVyYXIgZvZuc3RyZW4iCiAgICBJRF9XSU5ET1dTX01BWElNSVpFICAgICAiTWF4aW1lcmFyIGb2bnN0cmVuIgogICAgSURfV0lORE9XU19DQVNDQURFICAgICAgIlZpc2FyIGb2bnN0cmVuIHDlIHZhcmFuZHJhIGRpYWdvbmFsdCD2dmVyIHNrcml2Ym9yZGV0IgogICAgSURfV0lORE9XU19CUklOR1RPRlJPTlQgIlRhciBmcmFtIGb2bnN0cmV0LCBtZW4gc+R0dGVyIGRldCBpbnRlIGkgZm9rdXMiCiAgICBJRF9IRUxQX1RPUElDUyAgICAgICAgICAiVmlzYXIgaGrkbHDkbW5lbiBvbSBBa3Rpdml0ZXRzaGFudGVyYXJlbiIKICAgIElEX0hFTFBfQUJPVVQgICAgICAgICAgICJWaXNhciBwcm9ncmFtaW5mb3JtYXRpb24sIHZlcnNpb25zbnVtbWVyIHNhbXQgY29weXJpZ2h0IgogICAgSURfRklMRV9FWElUICAgICAgICAgICAgIkF2c2x1dGFyIEFrdGl2aXRldHNoYW50ZXJhcmVuIgogICAgSURfT1BUSU9OU19TSE9XMTZCSVRUQVNLUwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlZpc2FyIDE2LWJpdGFyc3Byb2dyYW0gdW5kZXIgJ250dmRtLmV4ZSciCiAgICBJRF9WSUVXX1NFTEVDVENPTFVNTlMgICAiVuRsamVyIHZpbGthIGtvbHVtbmVyIHNvbSB2aXNhcyBw5SBwcm9jZXNzaWRhbiIKICAgIElEX1ZJRVdfU0hPV0tFUk5FTFRJTUVTICJWaXNhciBrZXJuZWx0aWQgaSBwcmVzdGFuZGFncmFmZXJuYSIKICAgIElEX1ZJRVdfQ1BVSElTVE9SWV9PTkVHUkFQSEFMTAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVuIGhpc3RvcmllZ3JhZiB2aXNhciB0b3RhbCBwcm9jZXNzb3JhbnbkbmRuaW5nIgogICAgSURfVklFV19DUFVISVNUT1JZX09ORUdSQVBIUEVSQ1BVICJWYXJqZSBwcm9jZXNzb3IgaGFyIGVuIGVnZW4gZ3JhZiIKICAgIElEX0FQUExJQ0FUSU9OX1BBR0VfU1dJVENIVE8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUYXIgZW4gYWt0aXZpdGV0IHRpbGwgZvZyZ3J1bmRlbiBvY2ggc+R0dGVyIGRlbiBpIGZva3VzIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9FTkRUQVNLICAgICAgICAgICAgICAiU+RnZXIgdGlsbCBkZW4gdmFsZGEgYWt0aXZpdGV0ZW4gYXR0IGF2c2x1dGEiCiAgICBJRF9HT1RPUFJPQ0VTUyAgICAgICAgICAiQnl0ZXIgZm9rdXMgdGlsbCBkZW4gdmFsZGEgYWt0aXZpdGV0ZW5zIHByb2Nlc3MiCiAgICBJRF9SRVNUT1JFICAgICAgICAgICAgICAixXRlcnN05GxsZXIgYWt0aXZpdGV0c2hhbnRlcmFyZW4gZnLlbiBkZXNzIGRvbGRhIHN0YXR1cyIKICAgIElEX1BST0NFU1NfUEFHRV9FTkRQUk9DRVNTICJUYXIgYm9ydCBwcm9jZXNzZW4gZnLlbiBzeXN0ZW1ldCIKICAgIElEX1BST0NFU1NfUEFHRV9FTkRQUk9DRVNTVFJFRQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRhciBib3J0IGRlbiBo5HIgcHJvY2Vzc2VuIG9jaCBhbGxhIOR0dGxpbmdhciBmcuVuIHN5c3RlbWV0IgogICAgSURfUFJPQ0VTU19QQUdFX0RFQlVHICAgIktvcHBsYXIgZGVidWdnZXJuIHRpbGwgZGVubmEgcHJvY2VzcyIKICAgIElEX1BST0NFU1NfUEFHRV9TRVRBRkZJTklUWQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIktvbnRyb2xsZXJhciB2aWxrYSBwcm9jZXNzb3JlciBwcm9jZXNzZW4gdGlsbOV0cyBr9nJhIHDlIgogICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX1JFQUxUSU1FCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU+R0dGVyIHByb2Nlc3NlbiB0aWxsIHJlYWx0aWRzcHJpb3JpdGV0IgogICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX0hJR0ggIkdlciBwcm9jZXNzZW4gaPZnIHByaW9yaXRldCIKICAgIElEX1BST0NFU1NfUEFHRV9TRVRQUklPUklUWV9BQk9WRU5PUk1BTAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkdlciBwcm9jZXNzZW4gcHJpb3JpdGV0IPZ2ZXIgbm9ybWFsIgogICAgSURfUFJPQ0VTU19QQUdFX1NFVFBSSU9SSVRZX05PUk1BTAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkdlciBwcm9jZXNzZW4gbm9ybWFsIHByaW9yaXRldCIKICAgIElEX1BST0NFU1NfUEFHRV9TRVRQUklPUklUWV9CRUxPV05PUk1BTAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIkdlciBwcm9jZXNzZW4gcHJpb3JpdGV0IHVuZGVyIG5vcm1hbCIKICAgIElEX1BST0NFU1NfUEFHRV9TRVRQUklPUklUWV9MT1cgIkdlciBwcm9jZXNzZW4gbOVnIHByaW9yaXRldCIKRU5ECg==