LyoKICogSFRNTCBIZWxwIHJlc291cmNlcwogKiBEYW5pc2ggTGFuZ3VhZ2UgU3VwcG9ydAogKgogKiBDb3B5cmlnaHQgMjAwOCBKZW5zIEFsYnJldHNlbiA8amVuc0BhbGJyZXRzZW4uZGs+CiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQQogKi8KCkxBTkdVQUdFIExBTkdfREFOSVNILCBTVUJMQU5HX0RFRkFVTFQKClNUUklOR1RBQkxFCkJFR0lOCiAgICBJRFNfQ09OVEVOVFMgICAgICImSW5kaG9sZCIKICAgIElEU19JTkRFWCAgICAgICAgIkkmbmRla3MiCiAgICBJRFNfU0VBUkNIICAgICAgICImU/hnIgogICAgSURTX0ZBVk9SSVRFUyAgICAiRmF2b3ImaXR0ZXIiCkVORAoKU1RSSU5HVEFCTEUKQkVHSU4KICAgIElEVEJfRVhQQU5EICAgICAgIlZpcyIKICAgIElEVEJfQ09OVFJBQ1QgICAgIlNranVsIgogICAgSURUQl9TVE9QICAgICAgICAiU3RvcCIKICAgIElEVEJfUkVGUkVTSCAgICAgIk9wZGF06XIiCiAgICBJRFRCX0JBQ0sgICAgICAgICJUaWxiYWdlIgogICAgSURUQl9IT01FICAgICAgICAiSGplbSIKICAgIElEVEJfU1lOQyAgICAgICAgIlN5bmtyb25pc2VyIgogICAgSURUQl9QUklOVCAgICAgICAiVWRza3JpdiIKICAgIElEVEJfT1BUSU9OUyAgICAgIkluZHN0aWxsaW5nZXIiCiAgICBJRFRCX0ZPUldBUkQgICAgICJGcmVtIgogICAgSURUQl9OT1RFUyAgICAgICAiSURUQl9OT1RFUyIKICAgIElEVEJfQlJPV1NFX0ZXRCAgIklEVEJfQlJPV1NFX0ZXRCIKICAgIElEVEJfQlJPV1NFX0JBQ0sgIklEVF9CUk9XU0VfQkFDSyIKICAgIElEVEJfQ09OVEVOVFMgICAgIklEVEJfQ09OVEVOVFMiCiAgICBJRFRCX0lOREVYICAgICAgICJJRFRCX0lOREVYIgogICAgSURUQl9TRUFSQ0ggICAgICAiSURUQl9TRUFSQ0giCiAgICBJRFRCX0hJU1RPUlkgICAgICJJRFRCX0hJU1RPUlkiCiAgICBJRFRCX0ZBVk9SSVRFUyAgICJJRFRCX0ZBVk9SSVRFUyIKICAgIElEVEJfSlVNUDEgICAgICAgIkp1bXAxIgogICAgSURUQl9KVU1QMiAgICAgICAiSnVtcDIiCiAgICBJRFRCX0NVU1RPTUlaRSAgICJUaWxwYXMiCiAgICBJRFRCX1pPT00gICAgICAgICJGb3JzdPhyIgogICAgSURUQl9UT0NfTkVYVCAgICAiSURUQl9UT0NfTkVYVCIKICAgIElEVEJfVE9DX1BSRVYgICAgIklEVEJfVE9DX1BSRVYiCkVORAo=