LyoKICoJT0xFMk5MUyBsaWJyYXJ5CiAqICAgICAgQ3plY2ggUmVwdWJsaWMKICoJKEN6ZWNoIHN0cmluZ3MgaW4gY3AxMjUwKQogKgogKiBDb3B5cmlnaHQgMTk5OCBNYXJjZWwgQmF1cgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCiAqIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgogKgogKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKICovCgpMT0NWQUwoTE9DQUxFX0lMQU5HVUFHRSwiMDQwNSIpCi8qIExPQ1ZBTChMT0NBTEVfU0xBTkdVQUdFLCIiKSAqLwpMT0NWQUwoTE9DQUxFX1NFTkdMQU5HVUFHRSwiQ3plY2giKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZMQU5HTkFNRSwiY3plIikKTE9DVkFMKExPQ0FMRV9TTkFUSVZFTEFOR05BTUUsIshlc2v9IGphenlrIikKTE9DVkFMKExPQ0FMRV9JQ09VTlRSWSwiNDIiKQpMT0NWQUwoTE9DQUxFX1NDT1VOVFJZLCLIZXNr4SBSZXB1Ymxpa2EiKQpMT0NWQUwoTE9DQUxFX1NFTkdDT1VOVFJZLCJDemVjaCBSZXB1YmxpYyIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkNUUllOQU1FLCJDWkUiKQpMT0NWQUwoTE9DQUxFX1NOQVRJVkVDVFJZTkFNRSwiyGVza+EgUmVwdWJsaWthIikKTE9DVkFMKExPQ0FMRV9JREVGQVVMVExBTkdVQUdFLCIwNDA1IikKTE9DVkFMKExPQ0FMRV9JREVGQVVMVENPVU5UUlksIjQyIikKTE9DVkFMKExPQ0FMRV9JREVGQVVMVENPREVQQUdFLCI4NTIiKQpMT0NWQUwoTE9DQUxFX0lERUZBVUxUQU5TSUNPREVQQUdFLCIxMjUwIikKTE9DVkFMKExPQ0FMRV9JREVGQVVMVE1BQ0NPREVQQUdFLCAiMTAwMjkiKQovKiBMT0NWQUwoTE9DQUxFX1NMSVNULCIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lNRUFTVVJFLCIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NERUNJTUFMLCIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1NUSE9VU0FORCwiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9TR1JPVVBJTkcpICovCi8qIExPQ1ZBTChMT0NBTEVfSURJR0lUUywiMiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSUxaRVJPLCIxIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTkVHTlVNQkVSKSAqLwpMT0NWQUwoTE9DQUxFX1NOQVRJVkVESUdJVFMsICIwMTIzNDU2Nzg5IikKTE9DVkFMKExPQ0FMRV9TQ1VSUkVOQ1ksIkvoIikKTE9DVkFMKExPQ0FMRV9TSU5UTFNZTUJPTCwiQ1pLIikKTE9DVkFMKExPQ0FMRV9TTU9OREVDSU1BTFNFUCwiLCIpCkxPQ1ZBTChMT0NBTEVfU01PTlRIT1VTQU5EU0VQLCIgIikKTE9DVkFMKExPQ0FMRV9TTU9OR1JPVVBJTkcsIjM7MyIpCi8qIExPQ1ZBTChMT0NBTEVfSUNVUlJESUdJVFMsIjIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lJTlRMQ1VSUkRJR0lUUykgKi8KLyogTE9DVkFMKExPQ0FMRV9JQ1VSUkVOQ1ksIjMiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lORUdDVVJSLCI4IikgKi8KTE9DVkFMKExPQ0FMRV9TREFURSwiLiIpCkxPQ1ZBTChMT0NBTEVfU1RJTUUsIjoiKQpMT0NWQUwoTE9DQUxFX1NTSE9SVERBVEUsImRkLk1NLnl5eXkiKQpMT0NWQUwoTE9DQUxFX1NMT05HREFURSwiZGRkIGQuIE1NTU0geXl5eSIpCi8qIExPQ1ZBTChMT0NBTEVfU1RJTUVGT1JNQVQpICovCi8qIExPQ1ZBTChMT0NBTEVfSURBVEUsIjEiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lMREFURSkgKi8KTE9DVkFMKExPQ0FMRV9JVElNRSwiMSIpCi8qIExPQ1ZBTChMT0NBTEVfSVRJTUVNQVJLUE9TTikgKi8KLyogTE9DVkFMKExPQ0FMRV9JQ0VOVFVSWSkgKi8KTE9DVkFMKExPQ0FMRV9JVExaRVJPLCIxIikKLyogTE9DVkFMKExPQ0FMRV9JREFZTFpFUk8pICovCi8qIExPQ1ZBTChMT0NBTEVfSU1PTkxaRVJPKSAqLwpMT0NWQUwoTE9DQUxFX1MxMTU5LCAiIikKTE9DVkFMKExPQ0FMRV9TMjM1OSwgIiIpCkxPQ1ZBTChMT0NBTEVfSUNBTEVOREFSVFlQRSwgIjEiKQovKiBMT0NWQUwoTE9DQUxFX0lPUFRJT05BTENBTEVOREFSKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lGSVJTVERBWU9GV0VFSykgKi8KLyogTE9DVkFMKExPQ0FMRV9JRklSU1RXRUVLT0ZZRUFSKSAqLwoKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTEsIlBvbu9lbO0iKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FMiwi2nRlcv0iKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FMywiU3T4ZWRhIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTQsIsh0dnJ0ZWsiKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNSwiUOF0ZWsiKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNiwiU29ib3RhIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTcsIk5lZOxsZSIpCgpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FMSwiUG8iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FMiwi2nQiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FMywiU3QiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FNCwiyHQiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FNSwiUOEiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FNiwiU28iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FNywiTmUiKQoKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMSwiTGVkZW4iKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUyLCLabm9yIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMywiQvhlemVuIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNCwiRHViZW4iKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU1LCJLdux0ZW4iKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU2LCLIZXJ2ZW4iKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU3LCLIZXJ2ZW5lYyIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTgsIlNycGVuIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FOSwiWuH47SIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEwLCLY7WplbiIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTExLCJMaXN0b3BhZCIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEyLCJQcm9zaW5lYyIpCi8qIExPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEzLCIiKSAqLwoKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMSwiTGVkIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMiwi2m5vIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMywiQvhlIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNCwiRHViIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNSwiS3bsIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNiwiyGVyIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNywiyG5jIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FOCwiU3JwIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FOSwiWuH4IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTAsItjtaiIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTExLCJMaXMiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMiwiUHJvIikKLyogTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTMsIiIpICovCgpMT0NWQUwoTE9DQUxFX1NQT1NJVElWRVNJR04sICIiKQpMT0NWQUwoTE9DQUxFX1NORUdBVElWRVNJR04sICItIikKLyogTE9DVkFMKExPQ0FMRV9JUE9TU0lHTlBPU04sICIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lORUdTSUdOUE9TTiwgIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSVBPU1NZTVBSRUNFREVTLCAiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JUE9TU0VQQllTUEFDRSwgIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfSU5FR1NZTVBSRUNFREVTLCAiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTkVHU0VQQllTUEFDRSwgIiIpICovCi8qIExPQ1ZBTChMT0NBTEVfRk9OVFNJR05BVFVSRSwgIiIpICovCkxPQ1ZBTChMT0NBTEVfU0lTTzYzOUxBTkdOQU1FLCJjcyIpCkxPQ1ZBTChMT0NBTEVfU0lTTzMxNjZDVFJZTkFNRSwiQ1oiKQoK