LyogSGV5LCBFbWFjcywgb3BlbiB0aGlzIGZpbGUgd2l0aCAtKi0gY29kaW5nOiBjcDEyNTAgLSotCiAqCiAqIFJlZ2VkaXQgQ3plY2ggcmVzb3VyY2VzCiAqCiAqIENvcHlyaWdodCAyMDAyIFJvYmVydCBEaWNrZW5zb24KICogQ29weXJpZ2h0IDIwMDQgRGF2aWQgS3JlZGJhCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfQ1pFQ0gsIFNVQkxBTkdfREVGQVVMVAoKLyogQ3plY2ggc3RyaW5ncyBpbiBDUDEyNTAgKi8KCi8qCiAqIE1lbnUKICovCgoKSURSX1JFR0VESVRfTUVOVSBNRU5VIERJU0NBUkRBQkxFCkJFR0lOCiAgICBQT1BVUCAiJlJlZ2lzdHIiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICImSW1wb3J0b3ZhdCBzb3Vib3IgcmVnaXN0cnUuLi4iLCAgICBJRF9SRUdJU1RSWV9JTVBPUlRSRUdJU1RSWUZJTEUKICAgICAgICBNRU5VSVRFTSAiJkV4cG9ydG92YXQgc291Ym9yIHJlZ2lzdHJ1Li4uIiwgICAgSURfUkVHSVNUUllfRVhQT1JUUkVHSVNUUllGSUxFCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZQ+Glwb2ppdCByZWdpc3RyIHYgc+10aS4uLiIsIElEX1JFR0lTVFJZX0NPTk5FQ1RORVRXT1JLUkVHSVNUUlksIEdSQVlFRAogICAgICAgIE1FTlVJVEVNICJPJmRwb2ppdCBz7Z1vdv0gcmVnaXN0ci4uLiIsIElEX1JFR0lTVFJZX0RJU0NPTk5FQ1RORVRXT1JLUkVHSVNUUlksIEdSQVlFRAogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImVGlza1x0Q3RybCtQIiwgICAgICAgICAgICAgIElEX1JFR0lTVFJZX1BSSU5ULCBHUkFZRUQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJktvbmVjIiwgICAgICAgICAgICAgICAgICAgICAgIElEX1JFR0lTVFJZX0VYSVQKICAgIEVORAogICAgUE9QVVAgIibacHJhdnkiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICJaJm3sbml0IiwgICAgICAgICAgICAgICAgICAgICBJRF9FRElUX01PRElGWQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIFBPUFVQICImTm92/SIKICAgICAgICBCRUdJTgogICAgICAgICAgICBNRU5VSVRFTSAiJkts7egiLCAgICAgICAgICAgICAgICAgICAgICAgIElEX0VESVRfTkVXX0tFWQogICAgICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICAgICAgTUVOVUlURU0gItgmZXTsemNvduEgcG9sb55rYSIsICAgICAgICAgICAgICAgSURfRURJVF9ORVdfU1RSSU5HVkFMVUUKICAgICAgICAgICAgTUVOVUlURU0gIiZCaW7hcm7tIHBvbG+ea2EiLCAgICAgICAgICAgICAgIElEX0VESVRfTkVXX0JJTkFSWVZBTFVFCiAgICAgICAgICAgIE1FTlVJVEVNICImRFdPUkQgcG9sb55rYSIsICAgICAgICAgICAgICAgIElEX0VESVRfTkVXX0RXT1JEVkFMVUUKICAgICAgICBFTkQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJlNtYXphdFx0RGVsIiwgICAgICAgICAgICAgICAgSURfRURJVF9ERUxFVEUKICAgICAgICBNRU5VSVRFTSAiUPhlJmptZW5vdmF0XHRGMiIsICAgICAgICAgICAgICAgICBJRF9FRElUX1JFTkFNRQogICAgICAgIE1FTlVJVEVNIFNFUEFSQVRPUgogICAgICAgIE1FTlVJVEVNICImS29w7XJvdmF0IG7hemV2IGts7ehlIiwgICAgICAgICAgICAgIElEX0VESVRfQ09QWUtFWU5BTUUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJk5hau10XHRDdHJsK0YiLCAgICAgICAgICAgICAgIElEX0VESVRfRklORCwgR1JBWUVECiAgICAgICAgTUVOVUlURU0gIk5hau10ICZkYWya7Vx0RjMiLCAgICAgICAgICAgICAgSURfRURJVF9GSU5ETkVYVCwgR1JBWUVECiAgICBFTkQKICAgIFBPUFVQICImWm9icmF6aXQiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICJQJmFuZWwgU3RhdHVzIiwgICAgICAgICAgICAgICAgIElEX1ZJRVdfU1RBVFVTQkFSCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIlJvemTsJmxpdCIsICAgICAgICAgICAgICAgICAgICAgIElEX1ZJRVdfU1BMSVQKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiUPhlayZyZXNsaXRcdEY1IiwgICAgICAgICAgICAgICAgSURfVklFV19SRUZSRVNICiAgICBFTkQKICAgIFBPUFVQICImT2Js7WJlbukiCiAgICBCRUdJTgogICAgICAgIE1FTlVJVEVNICJQ+GlkJmF0IGsgb2Js7WJlbv1tIiwgICAgICAgICAgSURfRkFWT1JJVEVTX0FERFRPRkFWT1JJVEVTCiAgICAgICAgTUVOVUlURU0gIk9kZWImcmF0IG9ibO1iZW7pIiwgICAgICAgICAgIElEX0ZBVk9SSVRFU19SRU1PVkVGQVZPUklURQogICAgRU5ECiAgICBQT1BVUCAiJk7hcG927GRhIgogICAgQkVHSU4KICAgICAgICBNRU5VSVRFTSAiT2JzYSZoXHRGMSIsICAgICAgICAgICAgSURfSEVMUF9IRUxQVE9QSUNTCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZPIGFwbGlrYWNpIFJlZ2lzdHJ5IEVkaXRvciIsICAgICAgSURfSEVMUF9BQk9VVAogICAgRU5ECkVORAoKSURSX1BPUFVQX01FTlVTIE1FTlUgRElTQ0FSREFCTEUKQkVHSU4KICBQT1BVUCAiIgogIEJFR0lOCglNRU5VSVRFTSAiJlVwcmF2aXQiLCAgICAgICAgICAgICAgICAgICAgIElEX0VESVRfTU9ESUZZCglNRU5VSVRFTSAiVXByYXZpdCBiaW7hcm7tIGRhdGEiLCAgICAgICAgICBJRF9FRElUX01PRElGWV9CSU4KCU1FTlVJVEVNIFNFUEFSQVRPUgoJTUVOVUlURU0gIiZTbWF6YXRcdERlbCIsICAgICAgICAgICAgICAgIElEX0VESVRfREVMRVRFCglNRU5VSVRFTSAiJlD4ZWptZW5vdmF0IiwgICAgICAgICAgICAgICAgICAgICBJRF9FRElUX1JFTkFNRQogIEVORAogIFBPUFVQICIiCiAgQkVHSU4KICAgICAgICBQT1BVUCAiJk5vdv0iCiAgICAgICAgQkVHSU4KICAgICAgICAgICAgTUVOVUlURU0gIiZLbO3oIiwgICAgICAgICAgICAgICAgICAgICAgICBJRF9FRElUX05FV19LRVkKICAgICAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgICAgIE1FTlVJVEVNICLYJmV07Hpjb3bhIHBvbG+ea2EiLCAgICAgICAgICAgICAgIElEX0VESVRfTkVXX1NUUklOR1ZBTFVFCiAgICAgICAgICAgIE1FTlVJVEVNICImQmluYXJu7SBwb2xvnmthIiwgICAgICAgICAgICAgICBJRF9FRElUX05FV19CSU5BUllWQUxVRQogICAgICAgICAgICBNRU5VSVRFTSAiJkRXT1JEIHBvbG+ea2EiLCAgICAgICAgICAgICAgICBJRF9FRElUX05FV19EV09SRFZBTFVFCiAgICAgICAgRU5ECiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZTbWF6YXRcdERlbCIsICAgICAgICAgICAgICAgIElEX0VESVRfREVMRVRFCiAgICAgICAgTUVOVUlURU0gIlD4ZSZqbWVub3ZhdFx0RjIiLCAgICAgICAgICAgICAgICAgSURfRURJVF9SRU5BTUUKICAgICAgICBNRU5VSVRFTSBTRVBBUkFUT1IKICAgICAgICBNRU5VSVRFTSAiJktvcO1yb3ZhdCBu4XpldiBrbO3oZSIsICAgICAgICAgICAgICBJRF9FRElUX0NPUFlLRVlOQU1FCiAgICAgICAgTUVOVUlURU0gU0VQQVJBVE9SCiAgICAgICAgTUVOVUlURU0gIiZOYWrtdFx0Q3RybCtGIiwgICAgICAgICAgICAgICBJRF9FRElUX0ZJTkQsIEdSQVlFRAogIEVORApFTkQKCgovKgogKiBEaWFsb2cKICovCgpJRERfRURJVF9TVFJJTkcgRElBTE9HIERJU0NBUkRBQkxFICAyMiwgMTcsIDIxMCwgNzUKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gItpwcmF2YSD4ZXTsemNlIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCkJFR0lOCiAgICBMVEVYVCAgICAgICAgICAgIk7hemV2OiIsSURDX1NUQVRJQyw1LDUsMTE5LDgKICAgIEVESVRURVhUICAgICAgICBJRENfVkFMVUVfTkFNRSw1LDE1LDIwMCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUCB8IFdTX0RJU0FCTEVECiAgICBMVEVYVCAgICAgICAgICAgIk9ic2FoOiIsSURDX1NUQVRJQyw1LDMwLDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX0RBVEEsNSw0MCwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBFU19BVVRPSFNDUk9MTAogICAgREVGUFVTSEJVVFRPTiAgICJPSyIsSURPSywxNDAsNjAsMzAsMTEsV1NfR1JPVVAKICAgIFBVU0hCVVRUT04gICAiU3Rvcm5vIixJRENBTkNFTCwxNzUsNjAsMzAsMTEsV1NfR1JPVVAKRU5ECgpJRERfRURJVF9EV09SRCBESUFMT0cgRElTQ0FSREFCTEUgIDIyLCAxNywgMjEwLCAxMDAKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IERTX05PSURMRU1TRyB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gItpwcmF2YSBEV09SRCIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgpCRUdJTgogICAgTFRFWFQgICAgICAgICAgICJO4XpldjoiLElEQ19TVEFUSUMsNSw1LDExOSw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX05BTUUsNSwxNSwyMDAsMTIsIFdTX0JPUkRFUiB8IFdTX1RBQlNUT1AgfCBXU19ESVNBQkxFRAogICAgTFRFWFQgICAgICAgICAgICJPYnNhaDoiLElEQ19TVEFUSUMsNSwzMCw5MCw4CiAgICBFRElUVEVYVCAgICAgICAgSURDX1ZBTFVFX0RBVEEsNSw0MCw5MCwxMiwgV1NfQk9SREVSIHwgV1NfVEFCU1RPUAogICAgR1JPVVBCT1ggICAgICAgICJa4WtsYWQiLCBJRENfRFdPUkRfQkFTRSwgMTIwLCAzMCwgODUsIDM3LCBCU19HUk9VUEJPWAogICAgQVVUT1JBRElPQlVUVE9OICKaZXN0buFjdGtvdv0iLCBJRENfRFdPUkRfSEVYLCAxMzAsIDQwLCA2MCwgMTAsIFdTX1RBQlNUT1AKICAgIEFVVE9SQURJT0JVVFRPTiAiRGVzaXRrb3b9IiwgSURDX0RXT1JEX0RFQywgMTMwLCA1MiwgNjAsIDEwLCBXU19UQUJTVE9QCiAgICBERUZQVVNIQlVUVE9OICAgIk9LIixJRE9LLDE0MCw4MCwzMCwxMSxXU19HUk9VUAogICAgUFVTSEJVVFRPTiAgICJTdG9ybm8iLElEQ0FOQ0VMLDE3NSw4MCwzMCwxMSxXU19HUk9VUApFTkQKCi8qCiAqIFN0cmluZyBUYWJsZQogKi8KClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfTElTVF9DT0xVTU5fTkFNRSAgICAiTuF6ZXYiCiAgICBJRFNfTElTVF9DT0xVTU5fVFlQRSAgICAiVHlwIgogICAgSURTX0xJU1RfQ09MVU1OX0RBVEEgICAgIk9ic2FoIgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRFNfQVBQX1RJVExFICAgICAgICAgICAiRWRpdG9yIHJlZ2lzdHJ1IgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9SRUdJU1RSWV9NRU5VICAgICAgICAiT2JzYWh1amUgcPjta2F6eSBwcm8gcHLhY2kgc2Ugc3lyb3b9bSByZWdpc3RyZW0iCiAgICBJRF9FRElUX01FTlUgICAgICAgICAgICAiT2JzYWh1amUgcPjta2F6eSBwcm8gZWRpdGFjaSBrbO3o+SBhIHBvbG+eZWsiCiAgICBJRF9WSUVXX01FTlUgICAgICAgICAgICAiT2JzYWh1amUgcPjta2F6eSBwcm8g+nByYXZ1IHZ6aGxlZHUgb2tuYSByZWdlZGl0dSIKICAgIElEX0ZBVk9SSVRFU19NRU5VICAgICAgICJPYnNhaHVqZSBw+O1rYXp5IHBybyBw+O1zdHVwIGsg6GFzdG8gdZ7tdmFu/W0ga2zt6PltIgogICAgSURfSEVMUF9NRU5VICAgICAgICAgICAgIk9ic2FodWplIHD47WthenkgcHJvIHpvYnJhemVu7SBu4XBvduxkeSBhIGluZm9ybWFj7W8gZWRpdG9ydSByZWdpc3RydSIKICAgIElEX0VESVRfTkVXX01FTlUgICAgICAgICJPYnNhaHVqZSBw+O1rYXp5IHBybyB2eXR24fhlbu0gbm92/WNoIGts7ej5IGEgcG9sb55layIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURfRURJVF9NT0RJRlkgICAgICAgICAgIlpt7G7tIGRhdGEiCiAgICBJRF9FRElUX05FV19LRVkgICAgICAgICAiUPhpZOEgbm92/SBrbO3oIgogICAgSURfRURJVF9ORVdfU1RSSU5HVkFMVUUgIlD4aWThIG5vdm91IPhldOx6Y292b3UgcG9sb55rdSIKICAgIElEX0VESVRfTkVXX0JJTkFSWVZBTFVFICJQ+Glk4SBub3ZvdSBiaW7hcm7tIHBvbG+ea3UiCiAgICBJRF9FRElUX05FV19EV09SRFZBTFVFICAiUPhpZOEgbm92b3UgRFdPUkQgcG9sb55rdSIKICAgIElEX1JFR0lTVFJZX0lNUE9SVFJFR0lTVFJZRklMRSAiSW1wb3J0dWplIHRleHRvdv0gc291Ym9yIHJlZ2lzdHJ1IgogICAgSURfUkVHSVNUUllfRVhQT1JUUkVHSVNUUllGSUxFCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXhwb3J0dWplIGNlbP0gcmVnaXN0ciBuZWJvIGplaG8g6OFzdCBkbyB0ZXh0b3bpaG8gc291Ym9ydSIKICAgIElEX1JFR0lTVFJZX0NPTk5FQ1RORVRXT1JLUkVHSVNUUlkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQ+Glwb2rtIHNlIGsgcmVnaXN0cnUgbmEgamlu6W0gcG/o7XRh6GkiCiAgICBJRF9SRUdJU1RSWV9ESVNDT05ORUNUTkVUV09SS1JFR0lTVFJZCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT2Rwb2rtIHNlIG9kIHZ6ZOFsZW7sIHD4aXBvamVu6WhvIHJlZ2lzdHJ1IgogICAgSURfUkVHSVNUUllfUFJJTlQgICAgICAgIlZ5dGlza25lIOjhc3QgbmVibyBjZWz9IHJlZ2lzdHIiCi8qICAgIElEX0hFTFBfSEVMUFRPUElDUyAgICAgICJPcGVucyByZWdpc3RyeSBlZGl0b3IgaGVscCIgKi8KICAgIElEX0hFTFBfQUJPVVQgICAgICAgICAgICJab2JyYXrtIGluZm9ybWFjZSBvIHByb2dyYW11LCBqZWhvIHZlcnppIGEgY29weXJpZ2h0IgpFTkQKClNUUklOR1RBQkxFIERJU0NBUkRBQkxFCkJFR0lOCiAgICBJRF9SRUdJU1RSWV9FWElUICAgICAgICAiVWtvbujtIHJlZ2VkaXQiCiAgICBJRF9GQVZPUklURVNfQUREVE9GQVZPUklURVMgIlD4aWThIGts7eggayBvYmztYmVu/W0iCiAgICBJRF9GQVZPUklURVNfUkVNT1ZFRkFWT1JJVEUgIk9kZWJlcmUga2zt6CB6IG9ibO1iZW79Y2giCiAgICBJRF9WSUVXX1NUQVRVU0JBUiAgICAgICAiVWvhnmUgbmVibyBza3J5amUgc3RhdHVzIGJhciIKICAgIElEX1ZJRVdfU1BMSVQgICAgICAgICAgICJDaGFuZ2UgcG9zaXRpb24gb2Ygc3BsaXQgYmV0d2VlbiB0d28gcGFuZXMiCiAgICBJRF9WSUVXX1JFRlJFU0ggICAgICAgICAiUPhla3Jlc2ztIG9rbm8iCiAgICBJRF9FRElUX0RFTEVURSAgICAgICAgICAiU21hnmUgdnlicmFu6SIKICAgIElEX0VESVRfUkVOQU1FICAgICAgICAgICJQ+GVqbWVudWplIHZ5YnJhbukiCiAgICBJRF9FRElUX0NPUFlLRVlOQU1FICAgICAiVmxvnu0gbuF6ZXYgdnlicmFu6WhvIGts7ehlIGRvIHNjaHLhbmt5IgogICAgSURfRURJVF9GSU5EICAgICAgICAgICAgIk5hamRlIHRleHRvdv0g+GV07HplYyB2IGts7ehpLCBwb2xvnmNlIG5lYm8gZGF0ZWNoIgogICAgSURfRURJVF9GSU5ETkVYVCAgICAgICAgIk5hamRlIGRhbJrtIHb9c2t5dCB0ZXh0dSIKRU5ECgpTVFJJTkdUQUJMRSBESVNDQVJEQUJMRQpCRUdJTgogICAgSURTX0VSUk9SCQkgICAgIkNoeWJhIgogICAgSURTX0JBRF9LRVkJCSAgICAiTmVsemUgbmFq7XQga2zt6CAnJXMnIgogICAgSURTX0JBRF9WQUxVRSAgICAgICAgICAgIk5lbHplIG5hau10IHBvbG+ea3UgJyVzJyIKICAgIElEU19VTlNVUFBPUlRFRF9UWVBFICAgICJOZW1vaHUgdXByYXZpdCBrbO3oZSB0b2hvdG8gdHlwdSAoJWxkKSIKICAgIElEU19UT09fQklHX1ZBTFVFICAgICAgICJIb2Rub3RhIGplIHD47WxpmiB2ZWxr4SAoJWxkKSIKICAgIElEU19ERUxFVEVfQk9YX1RJVExFICAgICJQb3R2cu90ZSBzbWF64W7tIHBvbG+ea3kiCiAgICBJRFNfREVMRVRFX0JPWF9URVhUICAgICAiT3ByYXZkdSBjaGNldGUgc21hemF0IHBvbG+ea3UgJyVzJz8iCiAgICBJRFNfTkVXS0VZICAgICAgICAgICAgICAiTm92/SBrbO3oICMlZCIKICAgIElEU19ORVdWQUxVRSAgICAgICAgICAgICJOb3bhIHBvbG+ea2EgIyVkIgpFTkQKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCi8qCiAqIFRFWFRJTkNMVURFCiAqLwoKMSBURVhUSU5DTFVERSBESVNDQVJEQUJMRQpCRUdJTgogICAgInJlc291cmNlLmhcMCIKRU5ECgoKCi8qCiAqIFN0cmluZyBUYWJsZQogKi8KCi8qCiAqU1RSSU5HVEFCTEUgRElTQ0FSREFCTEUKICpCRUdJTgogKiAgICBJRF9IRUxQX0hFTFBUT1BJQ1MgICAgICAiT3BlbnMgUmVnaXN0cnkgRWRpdG9yIEhlbHAuIgogKiAgICBJRF9IRUxQX0FCT1VUICAgICAgICAgICAiRGlzcGxheXMgcHJvZ3JhbSBpbmZvcm1hdGlvbiwgdmVyc2lvbiBudW1iZXIsIGFuZCBjb3B5cmlnaHQuIgogKkVORAogKi8KCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K