LyoKICoJT0xFMk5MUyBsaWJyYXJ5CiAqICAgICAgVHVya2V5CiAqCShUdXJraXNoIHN0cmluZ3MgaW4gY3AxMjU0KQogKgogKiBDb3B5cmlnaHQgMTk5OCBNYXJjZWwgQmF1cgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKICovCgpMT0NWQUwoTE9DQUxFX0lMQU5HVUFHRSwiMDQxZiIpCi8qIExPQ1ZBTChMT0NBTEVfU0xBTkdVQUdFLCIiKSAqLwpMT0NWQUwoTE9DQUxFX1NFTkdMQU5HVUFHRSwiVHVya2lzaCIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkxBTkdOQU1FLCJ0cmsiKQovKiBMT0NWQUwoTE9DQUxFX1NOQVRJVkVMQU5HTkFNRSwiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JQ09VTlRSWSwiIikgKi8KTE9DVkFMKExPQ0FMRV9TQ09VTlRSWSwiVPxya2l5ZSIpCkxPQ1ZBTChMT0NBTEVfU0VOR0NPVU5UUlksIlR1cmtleSIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkNUUllOQU1FLCJUVVIiKQpMT0NWQUwoTE9DQUxFX1NOQVRJVkVDVFJZTkFNRSwiVPxya2l5ZSIpCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRMQU5HVUFHRSwiMDQxZiIpCi8qIExPQ1ZBTChMT0NBTEVfSURFRkFVTFRDT1VOVFJZLCIiKSAqLwpMT0NWQUwoTE9DQUxFX0lERUZBVUxUQ09ERVBBR0UsIjg1NyIpCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRBTlNJQ09ERVBBR0UsIjEyNTQiKQpMT0NWQUwoTE9DQUxFX0lERUZBVUxUTUFDQ09ERVBBR0UsICIxMDA4MSIpCi8qIExPQ1ZBTChMT0NBTEVfU0xJU1QsIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSU1FQVNVUkUsIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfU0RFQ0lNQUwsIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfU1RIT1VTQU5ELCIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NHUk9VUElORykgKi8KLyogTE9DVkFMKExPQ0FMRV9JRElHSVRTLCIyIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTFpFUk8sIjEiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lORUdOVU1CRVIpICovCi8qIExPQ1ZBTChMT0NBTEVfU05BVElWRURJR0lUUykgKi8KTE9DVkFMKExPQ0FMRV9TQ1VSUkVOQ1ksIlRMIikKTE9DVkFMKExPQ0FMRV9TSU5UTFNZTUJPTCwiVFJMIikKLyogTE9DVkFMKExPQ0FMRV9TTU9OREVDSU1BTFNFUCwiLCIpICovCi8qIExPQ1ZBTChMT0NBTEVfU01PTlRIT1VTQU5EU0VQLCIuIikgKi8KLyogTE9DVkFMKExPQ0FMRV9TTU9OR1JPVVBJTkcpICovCi8qIExPQ1ZBTChMT0NBTEVfSUNVUlJESUdJVFMsIjIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lJTlRMQ1VSUkRJR0lUUykgKi8KLyogTE9DVkFMKExPQ0FMRV9JQ1VSUkVOQ1ksIjMiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lORUdDVVJSLCI4IikgKi8KLyogTE9DVkFMKExPQ0FMRV9TREFURSwiLiIpICovCi8qIExPQ1ZBTChMT0NBTEVfU1RJTUUsIjoiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NTSE9SVERBVEUsImRkL01NLXl5eXkiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NMT05HREFURSwiZGRkLCBkLiBNTU1NIHl5eXkiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NUSU1FRk9STUFUKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lEQVRFLCIxIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTERBVEUpICovCkxPQ1ZBTChMT0NBTEVfSVRJTUUsIjEiKQovKiBMT0NWQUwoTE9DQUxFX0lUSU1FTUFSS1BPU04pICovCi8qIExPQ1ZBTChMT0NBTEVfSUNFTlRVUlkpICovCkxPQ1ZBTChMT0NBTEVfSVRMWkVSTywiMSIpCi8qIExPQ1ZBTChMT0NBTEVfSURBWUxaRVJPKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lNT05MWkVSTykgKi8KLyogTE9DVkFMKExPQ0FMRV9TMTE1OSwgIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfUzIzNTksICIiKSAqLwpMT0NWQUwoTE9DQUxFX0lDQUxFTkRBUlRZUEUsICIxIikKLyogTE9DVkFMKExPQ0FMRV9JT1BUSU9OQUxDQUxFTkRBUikgKi8KLyogTE9DVkFMKExPQ0FMRV9JRklSU1REQVlPRldFRUspICovCi8qIExPQ1ZBTChMT0NBTEVfSUZJUlNUV0VFS09GWUVBUikgKi8KCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUUxLCJQYXphcnRlc2kiKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FMiwiU2Fs/SIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUUzLCLHYXL+YW1iYSIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUU0LCJQZXL+ZW1iZSIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUU1LCJDdW1hIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTYsIkN1bWFydGVzaSIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUU3LCJQYXphciIpCgpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FMSwiUHp0IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTIsIlNhbCIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUUzLCLHcv4iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FNCwiUHL+IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTUsIkN1bSIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUU2LCJDdHMiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FNywiUGF6IikKCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEsIk9jYWsiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUyLCLedWJhdCIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTMsIk1hcnQiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU0LCJOaXNhbiIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTUsIk1hef1zIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNiwiSGF6aXJhbiIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTcsIlRlbW11cyIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTgsIkHwdXN0b3MiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU5LCJFeWz8bCIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEwLCJFa2ltIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTEsIkthc/1tIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTIsIkFyYWz9ayIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEzLCIiKQoKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMSwiT2NhIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMiwi3nViIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMywiTWFyIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNCwiTmlzIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNSwiTWF5IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNiwiSGF6IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNywiVGVtIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FOCwiQfB1IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FOSwiRXlsIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTAsIkVraSIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTExLCJLYXMiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMiwiQXJhIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTMsIiIpCgpMT0NWQUwoTE9DQUxFX1NQT1NJVElWRVNJR04sICIiKQpMT0NWQUwoTE9DQUxFX1NORUdBVElWRVNJR04sICItIikKLyogTE9DVkFMKExPQ0FMRV9JUE9TU0lHTlBPU04sICIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lORUdTSUdOUE9TTiwgIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSVBPU1NZTVBSRUNFREVTLCAiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JUE9TU0VQQllTUEFDRSwgIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSU5FR1NZTVBSRUNFREVTLCAiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTkVHU0VQQllTUEFDRSwgIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfRk9OVFNJR05BVFVSRSwgIiIpICovCkxPQ1ZBTChMT0NBTEVfU0lTTzYzOUxBTkdOQU1FLCJ0ciIpCkxPQ1ZBTChMT0NBTEVfU0lTTzMxNjZDVFJZTkFNRSwiVFIiKQoKLyogY2FsZW5kYXJpbyBncmVnb3JpYW5vICovCg==