LyoKICogQ29tbW9uIERpYWxvZyBUZXN0IEppZyBFeGVyY2lzZXIKICogRnJlbmNoIExhbmd1YWdlIFN1cHBvcnQKICoKICogQ29weXJpZ2h0IChjKSAxOTk5IEVyaWMgV2lsbGlhbXMuCiAqIENvcHlyaWdodCAoYykgMjAwMyBWaW5jZW50IELpcm9uLgogKiBDb3B5cmlnaHQgKGMpIDIwMDYgSm9uYXRoYW6gRXJuc3QuCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfRlJFTkNILCBTVUJMQU5HX05FVVRSQUwKCkNtZGxndHN0TWVudSBNRU5VCnsKIFBPUFVQICImRmljaGllciIKIHsKICBNRU5VSVRFTSAiJlF1aXR0ZXIiLCBDTV9VX0VYSVQKIH0KCiBQT1BVUCAiJkNvbW1kbGciCiB7CiAgTUVOVUlURU0gIiZPdXZyaXIiLCBDTV9VX09QRU4KICBNRU5VSVRFTSAiJkVucmVnaXN0cmVyIiwgQ01fVV9TQVZFCiAgTUVOVUlURU0gU0VQQVJBVE9SCiAgTUVOVUlURU0gIiZDb3VsZXVyIiwgQ01fVV9DT0xPUgogIE1FTlVJVEVNICImUG9saWNlIiwgQ01fVV9GT05UCiAgTUVOVUlURU0gU0VQQVJBVE9SCiAgTUVOVUlURU0gIiZSZWNoZXJjaGVyIiwgQ01fVV9GSU5ECiAgTUVOVUlURU0gIlJlbXAmbGFjZXIiLCBDTV9VX1JFUExBQ0UKICBNRU5VSVRFTSBTRVBBUkFUT1IKICBNRU5VSVRFTSAiJkltcHJpbWVyIiwgQ01fVV9QUklOVAogfQoKIFBPUFVQICImRHJhcGVhdXgiCiB7CiAgTUVOVUlURU0gIiZGaWNoaWVyIiwgQ01fRl9GSUxFCiAgTUVOVUlURU0gU0VQQVJBVE9SCiAgTUVOVUlURU0gIiZDb3VsZXVyIiwgQ01fRl9DT0xPUgogIE1FTlVJVEVNICImUG9saWNlIiwgQ01fRl9GT05UCiAgTUVOVUlURU0gU0VQQVJBVE9SCiAgTUVOVUlURU0gIlJlY2hlcmNoZXIvJlJlbXBsYWNlciIsIENNX0ZfRklORFJFUExBQ0UKICBNRU5VSVRFTSBTRVBBUkFUT1IKICBNRU5VSVRFTSAiJkltcHJpbWVyIiwgQ01fRl9QUklOVAogfQoKIFBPUFVQICJBaWQmZSIKIHsKICBNRU5VSVRFTSAiJlVzYWdlIiwgQ01fSF9VU0FHRQogIE1FTlVJVEVNICLAICZwcm9wb3MiLCBDTV9IX0FCT1VUCiB9Cgp9CgpDb2xvcl9GbGFnc19EaWFsb2cgRElBTE9HIDExLCAyMCwgMjA3LCAxMDcKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04KQ0FQVElPTiAiRHJhcGVhdXggZGUgbGEgYm/udGUgZGUgZGlhbG9ndWUgZGUgY2hvaXggZGUgbGEgY291bGV1ciIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBERUZQVVNIQlVUVE9OICJPSyIsIElET0ssIDE0OCwgNiwgNTAsIDE0LCBCU19ERUZQVVNIQlVUVE9OIHwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJBbm51bGVyIiwgSURDQU5DRUwsIDE0OCwgMjQsIDUwLCAxNCwgV1NfR1JPVVAgfCBXU19UQUJTVE9QCiBQVVNIQlVUVE9OICJBaWRlIiwgQ01fUl9IRUxQLCAxNDgsIDQyLCA1MCwgMTQsIFdTX0dST1VQIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkNDX0VOQUJMRUhPT0siLCBJX0NDX0VOQUJMRUhPT0ssIDEyLCAxMiwgMTIyLCAxMCwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkNDX0VOQUJMRVRFTVBMQVRFIiwgSV9DQ19FTkFCTEVURU1QTEFURSwgMTIsIDI0LCAxMjIsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0NfRU5BQkxFVEVNUExBVEVIQU5ETEUiLCBJX0NDX0VOQUJMRVRFTVBMQVRFSEFORExFLCAxMiwgMzYsIDEyMiwgMTAsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDQ19GVUxMT1BFTiIsIElfQ0NfRlVMTE9QRU4sIDEyLCA0OCwgMTIyLCAxMCwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkNDX1BSRVZFTlRGVUxMT1BFTiIsIElfQ0NfUFJFVkVOVEZVTExPUEVOLCAxMiwgNjAsIDEyMiwgMTAsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDQ19SR0JJTklUIiwgSV9DQ19SR0JJTklULCAxMiwgNzIsIDEyMiwgMTAsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDQ19TSE9XSEVMUCIsIElfQ0NfU0hPV0hFTFAsIDEyLCA4NCwgMTIyLCAxMCwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAp9CgpGb250X0ZsYWdzX0RpYWxvZyBESUFMT0cgOSwgMjAsIDIwNywgMzEzClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OCkNBUFRJT04gIkRyYXBlYXV4IGRlIGxhIGJv7nRlIGRlIGRpYWxvZ3VlIGRlIGNob2l4IGRlIGxhIHBvbGljZSIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBERUZQVVNIQlVUVE9OICJPSyIsIElET0ssIDE0OCwgNiwgNTAsIDE0CiBQVVNIQlVUVE9OICJBbm51bGVyIiwgSURDQU5DRUwsIDE0OCwgMjQsIDUwLCAxNAogUFVTSEJVVFRPTiAiQWlkZSIsIENNX1JfSEVMUCwgMTQ4LCA0MiwgNTAsIDE0CiBDSEVDS0JPWCAiQ0ZfQVBQTFkiLCBJX0NGX0FQUExZLCAxMiwgMTIsIDEyMCwgMTAsIEJTX0FVVE9DSEVDS0JPWCAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0ZfQU5TSU9OTFkiLCBJX0NGX0FOU0lPTkxZLCAxMiwgMjQsIDEyMCwgMTAsIEJTX0FVVE9DSEVDS0JPWCAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0ZfQk9USCIsIElfQ0ZfQk9USCwgMTIsIDM2LCAxMjAsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkNGX1RUT05MWSIsIElfQ0ZfVFRPTkxZLCAxMiwgNDgsIDEyMCwgMTAsIEJTX0FVVE9DSEVDS0JPWCAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0ZfRUZGRUNUUyIsIElfQ0ZfRUZGRUNUUywgMTIsIDYwLCAxMjAsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkNGX0VOQUJMRUhPT0siLCBJX0NGX0VOQUJMRUhPT0ssIDEyLCA3MiwgMTIwLCAxMCwgQlNfQVVUT0NIRUNLQk9YICB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDRl9FTkFCTEVURU1QTEFURSIsIElfQ0ZfRU5BQkxFVEVNUExBVEUsIDEyLCA4NCwgMTIwLCAxMCwgQlNfQVVUT0NIRUNLQk9YICB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDRl9FTkFCTEVURU1QTEFURUhBTkRMRSIsIElfQ0ZfRU5BQkxFVEVNUExBVEVIQU5ETEUsIDEyLCA5NiwgMTIwLCAxMCwgQlNfQVVUT0NIRUNLQk9YICB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDRl9GSVhFRFBJVENIT05MWSIsIElfQ0ZfRklYRURQSVRDSE9OTFksIDEyLCAxMDgsIDEyMCwgMTAsIEJTX0FVVE9DSEVDS0JPWCAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0ZfRk9SQ0VGT05URVhJU1QiLCBJX0NGX0ZPUkNFRk9OVEVYSVNULCAxMiwgMTIwLCAxMjAsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkNGX0lOSVRUT0xPR0ZPTlRTVFJVQ1QiLCBJX0NGX0lOSVRUT0xPR0ZPTlRTVFJVQ1QsIDEyLCAxMzIsIDEyMCwgMTAsIEJTX0FVVE9DSEVDS0JPWCAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0ZfTElNSVRTSVpFIiwgSV9DRl9MSU1JVFNJWkUsIDEyLCAxNDQsIDEyMCwgMTAsIEJTX0FVVE9DSEVDS0JPWCAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0ZfTk9GQUNFU0VMIiwgSV9DRl9OT0ZBQ0VTRUwsIDEyLCAxNTYsIDEyMCwgMTAsIEJTX0FVVE9DSEVDS0JPWCAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0ZfTk9PRU1GT05UUyIsIElfQ0ZfTk9PRU1GT05UUywgMTIsIDE2OCwgMTIwLCAxMCwgQlNfQVVUT0NIRUNLQk9YICB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDRl9OT1NJTVVMQVRJT05TIiwgSV9DRl9OT1NJTVVMQVRJT05TLCAxMiwgMTgwLCAxMjAsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkNGX05PU0laRVNFTCIsIElfQ0ZfTk9TSVpFU0VMLCAxMiwgMTkyLCAxMjAsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkNGX05PU1RZTEVTRUwiLCBJX0NGX05PU1RZTEVTRUwsIDEyLCAyMDQsIDEyMCwgMTAsIEJTX0FVVE9DSEVDS0JPWCAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0ZfTk9WRUNUT1JGT05UUyIsIElfQ0ZfTk9WRUNUT1JGT05UUywgMTIsIDIxNiwgMTIwLCAxMCwgQlNfQVVUT0NIRUNLQk9YICB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDRl9QUklOVEVSRk9OVFMiLCBJX0NGX1BSSU5URVJGT05UUywgMTIsIDIyOCwgMTIwLCAxMCwgQlNfQVVUT0NIRUNLQk9YICB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDRl9TQ0FMQUJMRU9OTFkiLCBJX0NGX1NDQUxBQkxFT05MWSwgMTIsIDI0MCwgMTIwLCAxMCwgQlNfQVVUT0NIRUNLQk9YICB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDRl9TSE9XSEVMUCIsIElfQ0ZfU0hPV0hFTFAsIDEyLCAyNjQsIDEyMCwgMTAsIEJTX0FVVE9DSEVDS0JPWCAgfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiQ0ZfU0NSRUVORk9OVFMiLCBJX0NGX1NDUkVFTkZPTlRTLCAxMiwgMjUyLCAxMjAsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkNGX1VTRVNUWUxFIiwgSV9DRl9VU0VTVFlMRSwgMTIsIDI3NiwgMTIwLCAxMCwgQlNfQVVUT0NIRUNLQk9YICB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJDRl9XWVNJV1lHIiwgSV9DRl9XWVNJV1lHLCAxMiwgMjg4LCAxMjAsIDEwLCBCU19BVVRPQ0hFQ0tCT1ggIHwgV1NfVEFCU1RPUAp9CgpGaW5kX0ZsYWdzX0RpYWxvZyBESUFMT0cgOCwgMjQsIDIwNywgMzA2ClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OCkNBUFRJT04gIkRyYXBlYXV4IGRlIGxhIGZlbup0cmUgZGUgcmVjaGVyY2hlL3JlbXBsYWNlbWVudCIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBERUZQVVNIQlVUVE9OICJPSyIsIElET0ssIDE0OCwgNiwgNTAsIDE0CiBQVVNIQlVUVE9OICJBbm51bGVyIiwgSURDQU5DRUwsIDE0OCwgMjQsIDUwLCAxNAogUFVTSEJVVFRPTiAiQWlkZSIsIElESEVMUCwgMTQ4LCA0MiwgNTAsIDE0CiBDSEVDS0JPWCAiRlJfRElBTE9HVEVSTSIsIElfRlJfRElBTE9HVEVSTSwgMjQsIDEyLCAxMjAsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiRlJfRE9XTiIsIElfRlJfRE9XTiwgMjQsIDI0LCAxMjAsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiRlJfRU5BQkxFSE9PSyIsIElfRlJfRU5BQkxFSE9PSywgMjQsIDM2LCAxMjAsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiRlJfRU5BQkxFVEVNUExBVEUiLCBJX0ZSX0VOQUJMRVRFTVBMQVRFLCAyNCwgNDgsIDEyMCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJGUl9FTkFCTEVURU1QTEFURUhBTkRMRSIsIElfRlJfRU5BQkxFVEVNUExBVEVIQU5ETEUsIDI0LCA2MCwgMTIwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkZSX0ZJTkRORVhUIiwgSV9GUl9GSU5ETkVYVCwgMjQsIDcyLCAxMjAsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiRlJfSElERU1BVENIQ0FTRSIsIElfRlJfSElERU1BVENIQ0FTRSwgMjQsIDg0LCAxMjAsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiRlJfSElERVdIT0xFV09SRCIsIElfRlJfSElERVdIT0xFV09SRCwgMjQsIDk2LCAxMjAsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiRlJfSElERVVQRE9XTiIsIElfRlJfSElERVVQRE9XTiwgMjQsIDEwOCwgMTIwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkZSX01BVENIQ0FTRSIsIElfRlJfTUFUQ0hDQVNFLCAyNCwgMTIwLCAxMjAsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiRlJfTk9NQVRDSENBU0UiLCBJX0ZSX05PTUFUQ0hDQVNFLCAyNCwgMTMyLCAxMjAsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiRlJfTk9VUERPV04iLCBJX0ZSX05PVVBET1dOLCAyNCwgMTQ0LCAxMjAsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiRlJfTk9XSE9MRVdPUkQiLCBJX0ZSX05PV0hPTEVXT1JELCAyNCwgMTU2LCAxMjAsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiRlJfUkVQTEFDRSIsIElfRlJfUkVQTEFDRSwgMjQsIDE2OCwgMTIwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIkZSX1JFUExBQ0VBTEwiLCBJX0ZSX1JFUExBQ0VBTEwsIDI0LCAxODAsIDEyMCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJGUl9TSE9XSEVMUCIsIElfRlJfU0hPV0hFTFAsIDI0LCAxOTIsIDEyMCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJGUl9XSE9MRVdPUkQiLCBJX0ZSX1dIT0xFV09SRCwgMjQsIDIwNCwgMTIwLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ09OVFJPTCAiIiwgLTEsICJzdGF0aWMiLCBTU19CTEFDS1JFQ1QgfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUsIDEyLCAxMiwgMTEsIDEzCiBDT05UUk9MICIiLCAtMSwgInN0YXRpYyIsIFNTX0JMQUNLUkVDVCB8IFdTX0NISUxEIHwgV1NfVklTSUJMRSwgMTIsIDcyLCAxMSwgMTMKIENPTlRST0wgIiIsIC0xLCAic3RhdGljIiwgU1NfQkxBQ0tSRUNUIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFLCAxMiwgMTY4LCAxMSwgMTMKIENPTlRST0wgIiIsIC0xLCAic3RhdGljIiwgU1NfQkxBQ0tSRUNUIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFLCAxMiwgMTgwLCAxMSwgMTMKIENPTlRST0wgIiIsIC0xLCAic3RhdGljIiwgU1NfQkxBQ0tSRUNUIHwgV1NfQ0hJTEQgfCBXU19WSVNJQkxFLCAyNCwgMjI4LCAxMSwgMTMKIENPTlRST0wgIkluZGlxdWUgbGVzIGRyYXBlYXV4IHF1aSBzb250IGZvdXJuaXMgcGFyIGxlIHN5c3TobWUgZXQgcXVpIGRvaXZlbnQg6nRyZSBlZmZhY+lzIHBhciBsJ3VzYWdlci4iLCAtMSwgInN0YXRpYyIsIFNTX0xFRlQgfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUsIDQ4LCAyMjgsIDk4LCAzNgp9CgpQcmludF9GbGFnc19EaWFsb2cgRElBTE9HIDQsIDE3LCAyMzksIDI4NwpTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiRHJhcGVhdXggZGUgbGEgYm/udGUgZGUgZGlhbG9ndWUgZCdpbXByZXNzaW9uIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKIERFRlBVU0hCVVRUT04gIk9LIiwgSURPSywgMTgwLCA2LCA1MCwgMTQKIFBVU0hCVVRUT04gIkFubnVsZXIiLCBJRENBTkNFTCwgMTgwLCAyNCwgNTAsIDE0CiBQVVNIQlVUVE9OICJBaWRlIiwgQ01fUl9IRUxQLCAxODAsIDQyLCA1MCwgMTQKIENIRUNLQk9YICJQRF9BTExQQUdFUyIsIElfUERfQUxMUEFHRVMsIDEyLCAxMiwgMTQ0LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIlBEX0NPTExBVEUiLCBJX1BEX0NPTExBVEUsIDEyLCAyNCwgMTQ0LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIlBEX0RJU0FCTEVQUklOVFRPRklMRSIsIElfUERfRElTQUJMRVBSSU5UVE9GSUxFLCAxMiwgMzYsIDE0NCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJQRF9FTkFCTEVQUklOVEhPT0siLCBJX1BEX0VOQUJMRVBSSU5USE9PSywgMTIsIDQ4LCAxNDQsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiUERfRU5BQkxFUFJJTlRURU1QTEFURSIsIElfUERfRU5BQkxFUFJJTlRURU1QTEFURSwgMTIsIDYwLCAxNDQsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiUERfRU5BQkxFUFJJTlRURU1QTEFURUhBTkRMRSIsIElfUERfRU5BQkxFUFJJTlRURU1QTEFURUhBTkRMRSwgMTIsIDcyLCAxNDQsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiUERfRU5BQkxFU0VUVVBIT09LIiwgSV9QRF9FTkFCTEVTRVRVUEhPT0ssIDEyLCA4NCwgMTQ0LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIlBEX0VOQUJMRVNFVFVQVEVNUExBVEUiLCBJX1BEX0VOQUJMRVNFVFVQVEVNUExBVEUsIDEyLCA5NiwgMTQ0LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIlBEX0VOQUJMRVNFVFVQVEVNUExBVEVIQU5ETEUiLCBJX1BEX0VOQUJMRVNFVFVQVEVNUExBVEVIQU5ETEUsIDEyLCAxMDgsIDE0NCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJQRF9ISURFUFJJTlRUT0ZJTEUiLCBJX1BEX0hJREVQUklOVFRPRklMRSwgMTIsIDEyMCwgMTQ0LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIlBEX05PUEFHRU5VTVMiLCBJX1BEX05PUEFHRU5VTVMsIDEyLCAxMzIsIDE0NCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJQRF9OT1NFTEVDVElPTiIsIElfUERfTk9TRUxFQ1RJT04sIDEyLCAxNDQsIDE0NCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJQRF9OT1dBUk5JTkciLCBJX1BEX05PV0FSTklORywgMTIsIDE1NiwgMTQ0LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIlBEX1BBR0VOVU1TIiwgSV9QRF9QQUdFTlVNUywgMTIsIDE2OCwgMTQ0LCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIlBEX1BSSU5UU0VUVVAiLCBJX1BEX1BSSU5UU0VUVVAsIDEyLCAxODAsIDE0NCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJQRF9QUklOVFRPRklMRSIsIElfUERfUFJJTlRUT0ZJTEUsIDEyLCAxOTIsIDE0NCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJQRF9SRVRVUk5EQyIsIElfUERfUkVUVVJOREMsIDEyLCAyMDQsIDE0NCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJQRF9SRVRVUk5ERUZBVUxUIiwgSV9QRF9SRVRVUk5ERUZBVUxULCAxMiwgMjE2LCAxNDQsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiUERfUkVUVVJOSUMiLCBJX1BEX1JFVFVSTklDLCAxMiwgMjI4LCAxNDQsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiUERfU0VMRUNUSU9OIiwgSV9QRF9TRUxFQ1RJT04sIDEyLCAyNDAsIDE0NCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJQRF9TSE9XSEVMUCIsIElfUERfU0hPV0hFTFAsIDEyLCAyNTIsIDE0NCwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJQRF9VU0VERVZNT0RFQ09QSUVTIiwgSV9QRF9VU0VERVZNT0RFQ09QSUVTLCAxMiwgMjY0LCAxNDQsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCn0KCkZpbGVfRmxhZ3NfRGlhbG9nIERJQUxPRyA2LCAxNSwgMjA3LCAyMjcKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIkRyYXBlYXV4IGRlIGxhIGJv7nRlIGRlIGRpYWxvZ3VlIGQnb3V2ZXJ0dXJlIGV0IGQnZW5yZWdpc3RyZW1lbnQgZGUgZmljaGllciIKRk9OVCA4LCAiTVMgU2hlbGwgRGxnIgp7CiBERUZQVVNIQlVUVE9OICJPSyIsIElET0ssIDE0OCwgNiwgNTAsIDE0CiBQVVNIQlVUVE9OICJBbm51bGVyIiwgSURDQU5DRUwsIDE0OCwgMjQsIDUwLCAxNAogUFVTSEJVVFRPTiAiQWlkZSIsIENNX1JfSEVMUCwgMTQ4LCA0MiwgNTAsIDE0CiBDSEVDS0JPWCAiT0ZOX0FMTE9XTVVMVElTRUxFQ1QiLCBJX09GTl9BTExPV01VTFRJU0VMRUNULCAxMiwgMTIsIDEzMiwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJPRk5fQ1JFQVRFUFJPTVBUIiwgSV9PRk5fQ1JFQVRFUFJPTVBULCAxMiwgMjQsIDEzMiwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJPRk5fRU5BQkxFSE9PSyIsIElfT0ZOX0VOQUJMRUhPT0ssIDEyLCAzNiwgMTMyLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIk9GTl9FTkFCTEVURU1QTEFURSIsIElfT0ZOX0VOQUJMRVRFTVBMQVRFLCAxMiwgNDgsIDEzMiwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJPRk5fRU5BQkxFVEVNUExBVEVIQU5ETEUiLCBJX09GTl9FTkFCTEVURU1QTEFURUhBTkRMRSwgMTIsIDYwLCAxMzIsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiT0ZOX0VYVEVOU0lPTkRJRkZFUkVOVCIsIElfT0ZOX0VYVEVOU0lPTkRJRkZFUkVOVCwgMTIsIDcyLCAxMzIsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCiBDSEVDS0JPWCAiT0ZOX0ZJTEVNVVNURVhJU1QiLCBJX09GTl9GSUxFTVVTVEVYSVNULCAxMiwgODQsIDEzMiwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJPRk5fSElERVJFQURPTkxZIiwgSV9PRk5fSElERVJFQURPTkxZLCAxMiwgOTYsIDEzMiwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJPRk5fTk9DSEFOR0VESVIiLCBJX09GTl9OT0NIQU5HRURJUiwgMTIsIDEwOCwgMTMyLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIk9GTl9OT1JFQURPTkxZUkVUVVJOIiwgSV9PRk5fTk9SRUFET05MWVJFVFVSTiwgMTIsIDEyMCwgMTMyLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIk9GTl9OT1RFU1RGSUxFQ1JFQVRFIiwgSV9PRk5fTk9URVNURklMRUNSRUFURSwgMTIsIDEzMiwgMTMyLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIk9GTl9OT1ZBTElEQVRFIiwgSV9PRk5fTk9WQUxJREFURSwgMTIsIDE0NCwgMTMyLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIk9GTl9PVkVSV1JJVEVQUk9NUFQiLCBJX09GTl9PVkVSV1JJVEVQUk9NUFQsIDEyLCAxNTYsIDEzMiwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJPRk5fUEFUSE1VU1RFWElTVCIsIElfT0ZOX1BBVEhNVVNURVhJU1QsIDEyLCAxNjgsIDEzMiwgMTIsIEJTX0FVVE9DSEVDS0JPWCB8IFdTX1RBQlNUT1AKIENIRUNLQk9YICJPRk5fUkVBRE9OTFkiLCBJX09GTl9SRUFET05MWSwgMTIsIDE4MCwgMTMyLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIk9GTl9TSEFSRUFXQVJFIiwgSV9PRk5fU0hBUkVBV0FSRSwgMTIsIDE5MiwgMTMyLCAxMiwgQlNfQVVUT0NIRUNLQk9YIHwgV1NfVEFCU1RPUAogQ0hFQ0tCT1ggIk9GTl9TSE9XSEVMUCIsIElfT0ZOX1NIT1dIRUxQLCAxMiwgMjA0LCAxMzIsIDEyLCBCU19BVVRPQ0hFQ0tCT1ggfCBXU19UQUJTVE9QCn0KCkFib3V0RGlhbG9nIERJQUxPRyA2LCAxNSwgMTk0LCAxMTkKU1RZTEUgRFNfTU9EQUxGUkFNRSB8IFdTX1BPUFVQIHwgV1NfVklTSUJMRSB8IFdTX0NBUFRJT04gfCBXU19TWVNNRU5VCkNBUFRJT04gIsAgcHJvcG9zIgpGT05UIDgsICJNUyBTaGVsbCBEbGciCnsKIERFRlBVU0hCVVRUT04gIk9LIiwgSURPSywgNzIsIDk2LCA1MCwgMTQKIExURVhUICJHYWJhcml0IGRlIHRlc3QgZGVzIGJv7nRlcyBkZSBkaWFsb2d1ZSBzdGFuZGFyZHMsIHZlcnNpb24gMS4yMCIsIC0xLCAxMywgMzYsIDE2OCwgMTIKIExURVhUICIoYykgMTk5OS0yMDAwLCBFcmljIFdpbGxpYW1zLiAgRHJvaXRzIHRlbHMgcXUnYWNjb3Jk6XMgcGFyIGxhIGxpY2VuY2UgZGUgV2luZS4gIE4nYWNjdW11bGV6IHBhcyBkdSBjb2RlIHRvdXQgc2V1bC4uLiBwYXJ0YWdlei1sZaAhIiwgLTEsIDE4LCA2MCwgMTU3LCAyNAogSUNPTiAiQWJvdXRJY29uIiwgLTEsIDg0LCAxMiwgMTgsIDIwCn0KClVzYWdlRGlhbG9nIERJQUxPRyAxODMsIDIyLCAxOTAsIDMwMApTVFlMRSBEU19NT0RBTEZSQU1FIHwgV1NfUE9QVVAgfCBXU19WSVNJQkxFIHwgV1NfQ0FQVElPTiB8IFdTX1NZU01FTlUKQ0FQVElPTiAiVXNhZ2UiCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKewogREVGUFVTSEJVVFRPTiAiT0siLCBJRE9LLCA3MCwgMjc2LCA1MCwgMTQKIExURVhUICJHYWJhcml0IGRlIHRlc3QgZGVzIGJv7nRlcyBkZSBkaWFsb2d1ZSBzdGFuZGFyZHMsIHZlcnNpb24gMS4yMCIsIC0xLCAxMywgNDgsIDE2OCwgMTIKIExURVhUICJDZXQgb3V0aWwgdGVzdGUgQ09NTURMRyBwb3VyIFdpbmUuIiwgLTEsIDEyLCA3MiwgMTY4LCAxMgogTFRFWFQgIkxlcyBkcmFwZWF1eCBzb250IHNw6WNpZulzIGRhbnMgbGUgbWVudSBEcmFwZWF1eC4iLCAtMSwgMTIsIDk2LCAxNjgsIDEyCiBMVEVYVCAiTGEgYm/udGUgZGUgZGlhbG9ndWUgZGUgY2hvaXggZGUgbGEgY291bGV1ciBjaGFuZ2UgbGEgY291bGV1ciBkZSBsJ2FycmnocmUtcGxhbi4iLCAtMSwgMTIsIDEyMCwgMTY4LCAxMgogTFRFWFQgIkxhIGJv7nRlIGRlIGRpYWxvZ3VlIGRlIGNob2l4IGRlIGxhIHBvbGljZSBjaGFuZ2UgdG91dGVzIGxlcyBwb2xpY2VzLCBldCBsYSBjb3VsZXVyIGRlIGxhIHBvbGljZSBzaSBDRl9FRkZFQ1RTIGVzdCBz6WxlY3Rpb25u6S4iLCAtMSwgMTIsIDE0NCwgMTY4LCAyNAogTFRFWFQgIkxlIG5vbSBjb21wbGV0IGV0IGxlIHRpdHJlIGRlIGxhIGRlcm5p6HJlIG9w6XJhdGlvbiBy6XVzc2llIGQnb3V2ZXJ0dXJlIG91IGQnZW5yZWdpc3RyZW1lbnQgc2UgdHJvdXZlbnQgZGFucyBsZSBjb2luIGVuIGhhdXQg4CBnYXVjaGUuIiwgLTEsIDEyLCAxODAsIDE2OCwgMjQKIExURVhUICIoYykgMTk5OS0yMDAwLCBFcmljIFdpbGxpYW1zLiAgRHJvaXRzIHRlbHMgcXUnYWNjb3Jk6XMgcGFyIGxhIGxpY2VuY2UgZGUgV2luZS4gIE4nYWNjdW11bGV6IHBhcyBkdSBjb2RlIHRvdXQgc2V1bC4uLiBwYXJ0YWdlei1sZaAhIiwgLTEsIDEyLCAyMjgsIDE2OCwgMzYKIElDT04gIkFib3V0SWNvbiIsIC0xLCA4NiwgMTIsIDE4LCAyMAogQ09OVFJPTCAiIiwgLTEsICJzdGF0aWMiLCBTU19CTEFDS1JFQ1QgfCBXU19DSElMRCB8IFdTX1ZJU0lCTEUsIDEyLCAyMTYsIDE2OCwgMgp9CgpQQUdFU0VUVVBETEdPUkRfQ1NUTSBESUFMT0cgTE9BRE9OQ0FMTCBNT1ZFQUJMRSBESVNDQVJEQUJMRSAzMiwgMzIsIDI0MCwgMjQwClNUWUxFIERTX01PREFMRlJBTUUgfCBXU19QT1BVUCB8IFdTX1ZJU0lCTEUgfCBXU19DQVBUSU9OIHwgV1NfU1lTTUVOVQpDQVBUSU9OICJURlQgdGVzdCBkaWFsb2ciCkZPTlQgOCwgIk1TIFNoZWxsIERsZyIKQkVHSU4KICBDT05UUk9MICIiLCByY3QxLCAiU3RhdGljIiwgU1NfV0hJVEVSRUNULCA4MCwgOCwgODAsIDgwCiAgQ09OVFJPTCAiIiwgcmN0MiwgIlN0YXRpYyIsIFNTX0dSQVlSRUNULCAxNjAsIDEyLCA0LCA4MAogIENPTlRST0wgIiIsIHJjdDMsICJTdGF0aWMiLCBTU19HUkFZUkVDVCwgIDg0LCA4OCwgODAsIDQKICBHUk9VUEJPWCAiUGFwaWVyIiwgZ3JwMiwgOCwgOTYsIDIyNCwgNTYsIEJTX0dST1VQQk9YCiAgTFRFWFQgIiZUYWlsbGWgOiIsIHN0YzIsIDE2LCAxMTIsIDM2LCA4CiAgQ09NQk9CT1ggY21iMiwgNjQsIDExMCwgODAsIDE2MCwgQ0JTX1NJTVBMRXxDQlNfRFJPUERPV058Q0JTX1NPUlR8V1NfR1JPVVB8V1NfVEFCU1RPUHxXU19WU0NST0xMCiAgQ09NQk9CT1ggY21iMSwgMTUwLCAxMTAsIDgwLCAxNjAsIENCU19TSU1QTEV8Q0JTX0RST1BET1dOfENCU19TT1JUfFdTX0dST1VQfFdTX1RBQlNUT1B8V1NfVlNDUk9MTAogIExURVhUICImQmFjoDoiLCBzdGMzLCAxNiwgMTMyLCAzNiwgOAogIENPTUJPQk9YIGNtYjMsIDY0LCAxMzAsIDE2MCwgMTYwLCBDQlNfU0lNUExFfENCU19EUk9QRE9XTnxDQlNfU09SVHxXU19HUk9VUHxXU19UQUJTVE9QfFdTX1ZTQ1JPTEwKICBHUk9VUEJPWCAiT3JpZW50YXRpb24iLCBncnAxLCA4LCAxNTYsIDY0LCA1NiwgQlNfR1JPVVBCT1gKICBBVVRPUkFESU9CVVRUT04gIiZQb3J0cmFpdCIsIHJhZDEsIDE2LCAxNzAsIDUyLCAxMiwgQlNfQVVUT1JBRElPQlVUVE9OCiAgQVVUT1JBRElPQlVUVE9OICImUGF5c2FnZSIsIHJhZDIsIDE2LCAxOTAsIDUyLCAxMiwgQlNfQVVUT1JBRElPQlVUVE9OCiAgR1JPVVBCT1ggIkJvcmR1cmVzIiwgZ3JwNCwgODAsIDE1NiwgMTUyLCA1NiwgQlNfR1JPVVBCT1gKICBMVEVYVCAiJkdhdWNoZaA6Iiwgc3RjMTUsIDg4LCAxNzIsIDIxLCA4CiAgRURJVFRFWFQgZWR0NCwgMTExLCAxNzAsIDM5LCAxMiwgV1NfVEFCU1RPUHxXU19HUk9VUHxXU19CT1JERVIKICBMVEVYVCAiJkRyb2l0ZaA6Iiwgc3RjMTYsIDE1OSwgMTcyLCAyNywgOAogIEVESVRURVhUIGVkdDYsIDE4NywgMTcwLCAzOSwgMTIsIFdTX1RBQlNUT1B8V1NfR1JPVVB8V1NfQk9SREVSCiAgTFRFWFQgIiZIYXV0oDoiLCBzdGMxNywgODgsIDE5MiwgMjEsIDgKICBFRElUVEVYVCBlZHQ1LCAxMTEsIDE5MCwgMzksIDEyLCBXU19UQUJTVE9QfFdTX0dST1VQfFdTX0JPUkRFUgogIExURVhUICImQmFzoDoiLCBzdGMxOCwgMTU5LCAxOTIsIDIzLCA4CiAgRURJVFRFWFQgZWR0NywgMTg3LCAxOTAsIDM5LCAxMiwgV1NfVEFCU1RPUHxXU19HUk9VUHxXU19CT1JERVIKICBERUZQVVNIQlVUVE9OICJPSyIsIElET0ssIDcxLCAyMjAsIDUwLCAxNCwgQlNfUFVTSEJVVFRPTgogIFBVU0hCVVRUT04gIkFubnVsZXIiLCBJRENBTkNFTCwgMTI2LCAyMjAsIDUwLCAxNAogIFBVU0hCVVRUT04gIiZJbXByaW1hbnRlLi4uIiwgcHNoMywgMTg0LCAyMjAsIDQ4LCAxNApFTkQK