LyoKICoJT0xFMk5MUyBsaWJyYXJ5CiAqICAgICAgU2NvdHMgR2FlbGljLCBVbml0ZWQgS2luZ2RvbQogKgogKiBDb3B5cmlnaHQgMTk5OCBNYXJjZWwgQmF1cgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKICovCgpMT0NWQUwoTE9DQUxFX0lMQU5HVUFHRSwgIjA4MDkiKQpMT0NWQUwoTE9DQUxFX1NMQU5HVUFHRSwgIkdhaWRobGlnIChCcmVhdGFpbm4gTWjycikiKQpMT0NWQUwoTE9DQUxFX1NFTkdMQU5HVUFHRSwgIlNjb3RzIEdhZWxpYyIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkxBTkdOQU1FLCAiZ2RoIikKTE9DVkFMKExPQ0FMRV9TTkFUSVZFTEFOR05BTUUsICJHYWlkaGxpZyIpCkxPQ1ZBTChMT0NBTEVfSUNPVU5UUlksICI0NCIpCkxPQ1ZBTChMT0NBTEVfU0NPVU5UUlksICJCcmVhdGFpbm4gTWjyciIpCkxPQ1ZBTChMT0NBTEVfU0VOR0NPVU5UUlksICJVbml0ZWQgS2luZ2RvbSIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkNUUllOQU1FLCAiR0JSIikKTE9DVkFMKExPQ0FMRV9TTkFUSVZFQ1RSWU5BTUUsICJCcmVhdGFpbm4gTWjyciIpCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRMQU5HVUFHRSwgIjA0MDkiKQpMT0NWQUwoTE9DQUxFX0lERUZBVUxUQ09VTlRSWSwgIjQ0IikKTE9DVkFMKExPQ0FMRV9JREVGQVVMVENPREVQQUdFLCAiODUwIikKTE9DVkFMKExPQ0FMRV9JREVGQVVMVEFOU0lDT0RFUEFHRSwgIjEyNTIiKQpMT0NWQUwoTE9DQUxFX1NMSVNULCAiLCIpCkxPQ1ZBTChMT0NBTEVfSU1FQVNVUkUsICIwIikKTE9DVkFMKExPQ0FMRV9TREVDSU1BTCwgIi4iKQpMT0NWQUwoTE9DQUxFX1NUSE9VU0FORCwgIiwiKQpMT0NWQUwoTE9DQUxFX1NHUk9VUElORywgIjM7MCIpCkxPQ1ZBTChMT0NBTEVfSURJR0lUUywgIjIiKQpMT0NWQUwoTE9DQUxFX0lMWkVSTywgIjEiKQpMT0NWQUwoTE9DQUxFX0lORUdOVU1CRVIsICIxIikKTE9DVkFMKExPQ0FMRV9TTkFUSVZFRElHSVRTLCAiMDEyMzQ1Njc4OSIpCkxPQ1ZBTChMT0NBTEVfU0NVUlJFTkNZLCAioyIpCkxPQ1ZBTChMT0NBTEVfU0lOVExTWU1CT0wsICJHQlAiKQpMT0NWQUwoTE9DQUxFX1NNT05ERUNJTUFMU0VQLCAiLiIpCkxPQ1ZBTChMT0NBTEVfU01PTlRIT1VTQU5EU0VQLCAiLCIpCkxPQ1ZBTChMT0NBTEVfU01PTkdST1VQSU5HLCAiMzswIikKTE9DVkFMKExPQ0FMRV9JQ1VSUkRJR0lUUywgIjIiKQpMT0NWQUwoTE9DQUxFX0lJTlRMQ1VSUkRJR0lUUywgIjIiKQpMT0NWQUwoTE9DQUxFX0lDVVJSRU5DWSwgIjAiKQpMT0NWQUwoTE9DQUxFX0lORUdDVVJSLCAiMSIpCkxPQ1ZBTChMT0NBTEVfU0RBVEUsICIvIikKTE9DVkFMKExPQ0FMRV9TVElNRSwgIjoiKQpMT0NWQUwoTE9DQUxFX1NTSE9SVERBVEUsICJkZC9NTS95eSIpCkxPQ1ZBTChMT0NBTEVfU0xPTkdEQVRFLCAiZGQgTU1NTSB5eXl5IikKTE9DVkFMKExPQ0FMRV9TVElNRUZPUk1BVCwgIkhIOm1tOnNzIikKTE9DVkFMKExPQ0FMRV9JREFURSwgIjEiKQpMT0NWQUwoTE9DQUxFX0lMREFURSwgIjEiKQpMT0NWQUwoTE9DQUxFX0lUSU1FLCAiMSIpCkxPQ1ZBTChMT0NBTEVfSVRJTUVNQVJLUE9TTiwgIjAiKQpMT0NWQUwoTE9DQUxFX0lDRU5UVVJZLCAiMCIpCkxPQ1ZBTChMT0NBTEVfSVRMWkVSTywgIjEiKQpMT0NWQUwoTE9DQUxFX0lEQVlMWkVSTywgIjEiKQpMT0NWQUwoTE9DQUxFX0lNT05MWkVSTywgIjEiKQpMT0NWQUwoTE9DQUxFX1MxMTU5LCAiQU0iKQpMT0NWQUwoTE9DQUxFX1MyMzU5LCAiUE0iKQpMT0NWQUwoTE9DQUxFX0lDQUxFTkRBUlRZUEUsICIxIikKTE9DVkFMKExPQ0FMRV9JT1BUSU9OQUxDQUxFTkRBUiwgIjAiKQpMT0NWQUwoTE9DQUxFX0lGSVJTVERBWU9GV0VFSywgIjAiKQpMT0NWQUwoTE9DQUxFX0lGSVJTVFdFRUtPRllFQVIsICIwIikKCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUUxLCAiRGlsdWFpbiIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUUyLCAiRGlt4GlydCIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUUzLCAiRGljaWFkYWluIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTQsICJEaWFyZGFvaW4iKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNSwgIkRpaGFvaW5lIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTYsICJEaXNhdGhhaXJuZSIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUU3LCAiRGlk8m1obmFpY2giKQoKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTEsICJEaWx1IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTIsICJEaW3gIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTMsICJEaWNhIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTQsICJEaWFyIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTUsICJEaWhhIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTYsICJEaXNhIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTcsICJEaWTyIikKCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEsICJBbSBGYW9pbHRlYWNoIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMiwgIkFuIEdlYXJhbm4iKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUzLCAiQW0gTeBydCIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTQsICJBbiBHaWJsZWFuIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNSwgIkEnTWjgaWdoIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNiwgIkFuIHQtT2cgTWjsb3MiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU3LCAiQW4gdC1sdWNoYXIiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU4LCAiQW4gTPluYXNkYWwiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU5LCAiQW4gdC1TdWx0YWluIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTAsICJBbiBEYW1oYWlyIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTEsICJBbiB0LVNhbWhhaW4iKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUxMiwgIkFuIET5YmhsYWNoZCIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEzLCAiIikKCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTEsICJGYW8iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUyLCAiR2VhIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMywgIk3gciIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTQsICJHaWIiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU1LCAiTWjgIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNiwgIk9nTSIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTcsICJMdWMiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU4LCAiTPluIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FOSwgIlN1bCIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTEwLCAiRGFtIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTEsICJTYW0iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMiwgIkT5YiIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTEzLCAiIikKCkxPQ1ZBTChMT0NBTEVfU1BPU0lUSVZFU0lHTiwgIiIpCkxPQ1ZBTChMT0NBTEVfU05FR0FUSVZFU0lHTiwgIi0iKQpMT0NWQUwoTE9DQUxFX0lQT1NTSUdOUE9TTiwgIjMiKQpMT0NWQUwoTE9DQUxFX0lORUdTSUdOUE9TTiwgIjMiKQpMT0NWQUwoTE9DQUxFX0lQT1NTWU1QUkVDRURFUywgIjEiKQpMT0NWQUwoTE9DQUxFX0lQT1NTRVBCWVNQQUNFLCAiMCIpCkxPQ1ZBTChMT0NBTEVfSU5FR1NZTVBSRUNFREVTLCAiMSIpCkxPQ1ZBTChMT0NBTEVfSU5FR1NFUEJZU1BBQ0UsICIwIikKLyogTE9DVkFMKExPQ0FMRV9GT05UU0lHTkFUVVJFLCAiIikgKi8KTE9DVkFMKExPQ0FMRV9TSVNPNjM5TEFOR05BTUUsImdkIikKTE9DVkFMKExPQ0FMRV9TSVNPMzE2NkNUUllOQU1FLCJHQiIpCg==