LyoKICoJT0xFMk5MUyBsaWJyYXJ5CiAqICAgICAgRGVubWFyawogKgogKiBDb3B5cmlnaHQgMTk5OCBNYXJjZWwgQmF1cgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKICovCgpMT0NWQUwoTE9DQUxFX0lMQU5HVUFHRSwiMDQwNiIpCkxPQ1ZBTChMT0NBTEVfU0xBTkdVQUdFLCJEYW5zayIpCkxPQ1ZBTChMT0NBTEVfU0VOR0xBTkdVQUdFLCJEYW5pc2giKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZMQU5HTkFNRSwiZGFuIikKTE9DVkFMKExPQ0FMRV9TTkFUSVZFTEFOR05BTUUsIkRhbnNrIikKTE9DVkFMKExPQ0FMRV9JQ09VTlRSWSwiNDUiKQpMT0NWQUwoTE9DQUxFX1NDT1VOVFJZLCJEYW5tYXJrIikKTE9DVkFMKExPQ0FMRV9TRU5HQ09VTlRSWSwiRGVubWFyayIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkNUUllOQU1FLCJETksiKQpMT0NWQUwoTE9DQUxFX1NOQVRJVkVDVFJZTkFNRSwiRGFubWFyayIpCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRMQU5HVUFHRSwiMDQwNiIpCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRDT1VOVFJZLCI0NSIpCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRDT0RFUEFHRSwiODY1IikKTE9DVkFMKExPQ0FMRV9JREVGQVVMVEFOU0lDT0RFUEFHRSwiMTI1MiIpCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRNQUNDT0RFUEFHRSwgIjEwMDAwIikKTE9DVkFMKExPQ0FMRV9TTElTVCwiOyIpCkxPQ1ZBTChMT0NBTEVfSU1FQVNVUkUsIjAiKQpMT0NWQUwoTE9DQUxFX1NERUNJTUFMLCIsIikKTE9DVkFMKExPQ0FMRV9TVEhPVVNBTkQsIi4iKQovKiBMT0NWQUwoTE9DQUxFX1NHUk9VUElORykgKi8KTE9DVkFMKExPQ0FMRV9JRElHSVRTLCIyIikKTE9DVkFMKExPQ0FMRV9JTFpFUk8sIjEiKQovKiBMT0NWQUwoTE9DQUxFX0lORUdOVU1CRVIpICovCkxPQ1ZBTChMT0NBTEVfU05BVElWRURJR0lUUywgIjAxMjM0NTY3ODkiKQpMT0NWQUwoTE9DQUxFX1NDVVJSRU5DWSwia3IiKQpMT0NWQUwoTE9DQUxFX1NJTlRMU1lNQk9MLCJES0siKQpMT0NWQUwoTE9DQUxFX1NNT05ERUNJTUFMU0VQLCIsIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhPVVNBTkRTRVAsIi4iKQpMT0NWQUwoTE9DQUxFX1NNT05HUk9VUElORywgIjM7MCIpCkxPQ1ZBTChMT0NBTEVfSUNVUlJESUdJVFMsIjIiKQovKiBMT0NWQUwoTE9DQUxFX0lJTlRMQ1VSUkRJR0lUUykgKi8KTE9DVkFMKExPQ0FMRV9JQ1VSUkVOQ1ksIjMiKQpMT0NWQUwoTE9DQUxFX0lORUdDVVJSLCI4IikKTE9DVkFMKExPQ0FMRV9TREFURSwiLiIpCkxPQ1ZBTChMT0NBTEVfU1RJTUUsIjoiKQpMT0NWQUwoTE9DQUxFX1NTSE9SVERBVEUsImRkL01NLXl5eXkiKQpMT0NWQUwoTE9DQUxFX1NMT05HREFURSwiZGRkLCBkLiBNTU1NIHl5eXkiKQovKiBMT0NWQUwoTE9DQUxFX1NUSU1FRk9STUFUKSAqLwpMT0NWQUwoTE9DQUxFX0lEQVRFLCIxIikKLyogTE9DVkFMKExPQ0FMRV9JTERBVEUpICovCkxPQ1ZBTChMT0NBTEVfSVRJTUUsIjEiKQovKiBMT0NWQUwoTE9DQUxFX0lUSU1FTUFSS1BPU04pICovCi8qIExPQ1ZBTChMT0NBTEVfSUNFTlRVUlkpICovCkxPQ1ZBTChMT0NBTEVfSVRMWkVSTywiMSIpCi8qIExPQ1ZBTChMT0NBTEVfSURBWUxaRVJPKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lNT05MWkVSTykgKi8KTE9DVkFMKExPQ0FMRV9TMTE1OSwgIiIpCkxPQ1ZBTChMT0NBTEVfUzIzNTksICIiKQpMT0NWQUwoTE9DQUxFX0lDQUxFTkRBUlRZUEUsICIxIikKLyogTE9DVkFMKExPQ0FMRV9JT1BUSU9OQUxDQUxFTkRBUikgKi8KLyogTE9DVkFMKExPQ0FMRV9JRklSU1REQVlPRldFRUspICovCi8qIExPQ1ZBTChMT0NBTEVfSUZJUlNUV0VFS09GWUVBUikgKi8KCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUUxLCJtYW5kYWciKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FMiwidGlyc2RhZyIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUUzLCJvbnNkYWciKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNCwidG9yc2RhZyIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUU1LCJmcmVkYWciKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNiwibPhyZGFnIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTcsInP4bmRhZyIpCgpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FMSwibWEiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FMiwidGkiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FMywib24iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FNCwidG8iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FNSwiZnIiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FNiwibPgiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FNywic/giKQoKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMSwiamFudWFyIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMiwiZmVicnVhciIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTMsIm1hcnRzIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNCwiYXByaWwiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU1LCJtYWoiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU2LCJqdW5pIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNywianVsaSIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTgsImF1Z3VzdCIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTksInNlcHRlbWJlciIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEwLCJva3RvYmVyIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTEsIm5vdmVtYmVyIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTIsImRlY2VtYmVyIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTMsIiIpCgpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxLCJqYW4iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUyLCJmZWIiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUzLCJtYXIiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU0LCJhcHIiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU1LCJtYWoiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU2LCJqdW4iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU3LCJqdWwiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU4LCJhdWciKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU5LCJzZXAiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMCwib2t0IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTEsIm5vdiIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTEyLCJkZWMiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMywiIikKCkxPQ1ZBTChMT0NBTEVfU1BPU0lUSVZFU0lHTiwgIiIpCkxPQ1ZBTChMT0NBTEVfU05FR0FUSVZFU0lHTiwgIi0iKQpMT0NWQUwoTE9DQUxFX0lQT1NTSUdOUE9TTiwgIjMiKQpMT0NWQUwoTE9DQUxFX0lORUdTSUdOUE9TTiwgIjMiKQpMT0NWQUwoTE9DQUxFX0lQT1NTWU1QUkVDRURFUywgIjEiKQpMT0NWQUwoTE9DQUxFX0lQT1NTRVBCWVNQQUNFLCAiMCIpCkxPQ1ZBTChMT0NBTEVfSU5FR1NZTVBSRUNFREVTLCAiMSIpCkxPQ1ZBTChMT0NBTEVfSU5FR1NFUEJZU1BBQ0UsICIwIikKLyogTE9DVkFMKExPQ0FMRV9GT05UU0lHTkFUVVJFLCAiIikgKi8KTE9DVkFMKExPQ0FMRV9TSVNPNjM5TEFOR05BTUUsImRhIikKTE9DVkFMKExPQ0FMRV9TSVNPMzE2NkNUUllOQU1FLCJESyIpCgo=