LyoKICoJT0xFMk5MUyBsaWJyYXJ5CiAqICAgICAgUm9tYW5pYQogKgkoUm9tYW5pYW4gc3RyaW5ncyBpbiBjcDEyNTApCiAqCiAqIENvcHlyaWdodCAxOTk4IE1hcmNlbCBCYXVyCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogKi8KCkxPQ1ZBTChMT0NBTEVfSUxBTkdVQUdFLCIwNDE4IikKTE9DVkFMKExPQ0FMRV9TTEFOR1VBR0UsIlJvbeJuYSIpCkxPQ1ZBTChMT0NBTEVfU0VOR0xBTkdVQUdFLCJSb21hbmlhbiIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkxBTkdOQU1FLCJyb20iKQpMT0NWQUwoTE9DQUxFX1NOQVRJVkVMQU5HTkFNRSwiUm9t4m5hIikKTE9DVkFMKExPQ0FMRV9JQ09VTlRSWSwiNDAiKQpMT0NWQUwoTE9DQUxFX1NDT1VOVFJZLCJSb23ibmlhIikKTE9DVkFMKExPQ0FMRV9TRU5HQ09VTlRSWSwiUm9tYW5pYSIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkNUUllOQU1FLCJST00iKQpMT0NWQUwoTE9DQUxFX1NOQVRJVkVDVFJZTkFNRSwiUm9t4m5pYSIpCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRMQU5HVUFHRSwiMDQxOCIpCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRDT1VOVFJZLCI0MCIpCi8qIExPQ1ZBTChMT0NBTEVfSURFRkFVTFRDT0RFUEFHRSkgKi8KTE9DVkFMKExPQ0FMRV9JREVGQVVMVEFOU0lDT0RFUEFHRSwiMTI1MCIpCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRNQUNDT0RFUEFHRSwgIjEwMDI5IikKTE9DVkFMKExPQ0FMRV9TTElTVCwiOyIpCi8qIExPQ1ZBTChMT0NBTEVfSU1FQVNVUkUsIiIpICovCkxPQ1ZBTChMT0NBTEVfU0RFQ0lNQUwsIiwiKQpMT0NWQUwoTE9DQUxFX1NUSE9VU0FORCwiLiIpCkxPQ1ZBTChMT0NBTEVfU0dST1VQSU5HLCAiMzswIikKTE9DVkFMKExPQ0FMRV9JRElHSVRTLCIyIikKLyogTE9DVkFMKExPQ0FMRV9JTFpFUk8sIjEiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lORUdOVU1CRVIpICovCkxPQ1ZBTChMT0NBTEVfU05BVElWRURJR0lUUywiMDEyMzQ1Njc4OSIpCkxPQ1ZBTChMT0NBTEVfU0NVUlJFTkNZLCJMRUkiKQpMT0NWQUwoTE9DQUxFX1NJTlRMU1lNQk9MLCJST0wiKQpMT0NWQUwoTE9DQUxFX1NNT05ERUNJTUFMU0VQLCIsIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhPVVNBTkRTRVAsIi4iKQpMT0NWQUwoTE9DQUxFX1NNT05HUk9VUElORywiMzswIikKTE9DVkFMKExPQ0FMRV9JQ1VSUkRJR0lUUywiMCIpCkxPQ1ZBTChMT0NBTEVfSUlOVExDVVJSRElHSVRTLCIyIikKTE9DVkFMKExPQ0FMRV9JQ1VSUkVOQ1ksIjMiKQpMT0NWQUwoTE9DQUxFX0lORUdDVVJSLCI4IikKTE9DVkFMKExPQ0FMRV9TREFURSwiLiIpCkxPQ1ZBTChMT0NBTEVfU1RJTUUsIjoiKQpMT0NWQUwoTE9DQUxFX1NTSE9SVERBVEUsImRkLk1NLnl5IikKLyogTE9DVkFMKExPQ0FMRV9TTE9OR0RBVEUsImRkZCwgZC4gTU1NTSB5eXl5IikgKi8KTE9DVkFMKExPQ0FMRV9TVElNRUZPUk1BVCwiSEg6bW06c3MiKQpMT0NWQUwoTE9DQUxFX0lEQVRFLCIxIikKLyogTE9DVkFMKExPQ0FMRV9JTERBVEUsIjEiKSAqLwpMT0NWQUwoTE9DQUxFX0lUSU1FLCIxIikKLyogTE9DVkFMKExPQ0FMRV9JVElNRU1BUktQT1NOKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lDRU5UVVJZKSAqLwpMT0NWQUwoTE9DQUxFX0lUTFpFUk8sIjEiKQovKiBMT0NWQUwoTE9DQUxFX0lEQVlMWkVSTykgKi8KLyogTE9DVkFMKExPQ0FMRV9JTU9OTFpFUk8pICovCi8qIExPQ1ZBTChMT0NBTEVfUzExNTksICIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX1MyMzU5LCAiIikgKi8KTE9DVkFMKExPQ0FMRV9JQ0FMRU5EQVJUWVBFLCAiMSIpCi8qIExPQ1ZBTChMT0NBTEVfSU9QVElPTkFMQ0FMRU5EQVIpICovCi8qIExPQ1ZBTChMT0NBTEVfSUZJUlNUREFZT0ZXRUVLKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lGSVJTVFdFRUtPRllFQVIpICovCgpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FMSwibHVuaSIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUUyLCJtYXL+aSIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUUzLCJtaWVyY3VyaSIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUU0LCJqb2kiKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNSwidmluZXJpIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTYsInPubWLjdOMiKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNywiZHVtaW5pY+MiKQoKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTEsIkwgIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTIsIk1hIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTMsIk1pIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTQsIkogIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTUsIlYgIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTYsIlMgIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTcsIkQgIikKCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEsImlhbnVhcmllIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMiwiZmVicnVhcmllIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMywibWFydGllIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNCwiYXByaWxpZSIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTUsIm1haSIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTYsIml1bmllIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNywiaXVsaWUiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU4LCJhdWd1c3QiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU5LCJzZXB0ZW1icmllIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTAsIm9jdG9tYnJpZSIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTExLCJub2llbWJyaWUiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUxMiwiZGVjZW1icmllIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTMsIiIpCgpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxLCJJYW4iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUyLCJGZWIiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUzLCJNYXIiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU0LCJBcHIiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU1LCJNYWkiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU2LCJJdW4iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU3LCJJdWwiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU4LCJBdWciKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU5LCJTZXAiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMCwiT2N0IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTEsIk5vdiIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTEyLCJEZWMiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMywiIikKCkxPQ1ZBTChMT0NBTEVfU1BPU0lUSVZFU0lHTiwgIiIpCkxPQ1ZBTChMT0NBTEVfU05FR0FUSVZFU0lHTiwgIi0iKQovKiBMT0NWQUwoTE9DQUxFX0lQT1NTSUdOUE9TTiwgIjEiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lORUdTSUdOUE9TTiwgIjEiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lQT1NTWU1QUkVDRURFUywgIjAiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lQT1NTRVBCWVNQQUNFLCAiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTkVHU1lNUFJFQ0VERVMsICIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lORUdTRVBCWVNQQUNFLCAiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9GT05UU0lHTkFUVVJFLCAiIikgKi8KTE9DVkFMKExPQ0FMRV9TSVNPNjM5TEFOR05BTUUsInJvIikKTE9DVkFMKExPQ0FMRV9TSVNPMzE2NkNUUllOQU1FLCJSTyIpCgovKiBHcmVnb3JpYW4gY2FsZW5kYXIgKi8K