LyoKICoJT0xFMk5MUyBsaWJyYXJ5CiAqICAgICAgRW5nbGlzaCAoVW5pdGVkIEtpbmdkb20pCiAqCiAqIENvcHlyaWdodCAxOTk4IE1hcmNlbCBCYXVyCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogKi8KCkxPQ1ZBTChMT0NBTEVfSUxBTkdVQUdFLCAiMDgwOSIpCkxPQ1ZBTChMT0NBTEVfU0xBTkdVQUdFLCAiRW5nbGlzaCAoVW5pdGVkIEtpbmdkb20pIikKTE9DVkFMKExPQ0FMRV9TRU5HTEFOR1VBR0UsICJFbmdsaXNoIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTEFOR05BTUUsICJFTkciKQpMT0NWQUwoTE9DQUxFX1NOQVRJVkVMQU5HTkFNRSwgIkVuZ2xpc2giKQpMT0NWQUwoTE9DQUxFX0lDT1VOVFJZLCAiNDQiKQpMT0NWQUwoTE9DQUxFX1NDT1VOVFJZLCAiVW5pdGVkIEtpbmdkb20iKQpMT0NWQUwoTE9DQUxFX1NFTkdDT1VOVFJZLCAiVW5pdGVkIEtpbmdkb20iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZDVFJZTkFNRSwgIkdCUiIpCkxPQ1ZBTChMT0NBTEVfU05BVElWRUNUUllOQU1FLCAiVW5pdGVkIEtpbmdkb20iKQpMT0NWQUwoTE9DQUxFX0lERUZBVUxUTEFOR1VBR0UsICIwODA5IikKTE9DVkFMKExPQ0FMRV9JREVGQVVMVENPVU5UUlksICI0NCIpCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRDT0RFUEFHRSwgIjg1MCIpCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRBTlNJQ09ERVBBR0UsICIxMjUyIikKTE9DVkFMKExPQ0FMRV9JREVGQVVMVE1BQ0NPREVQQUdFLCAiMTAwMDAiKQpMT0NWQUwoTE9DQUxFX1NMSVNULCAiLCIpCkxPQ1ZBTChMT0NBTEVfSU1FQVNVUkUsICIwIikKTE9DVkFMKExPQ0FMRV9TREVDSU1BTCwgIi4iKQpMT0NWQUwoTE9DQUxFX1NUSE9VU0FORCwgIiwiKQpMT0NWQUwoTE9DQUxFX1NHUk9VUElORywgIjM7MCIpCkxPQ1ZBTChMT0NBTEVfSURJR0lUUywgIjIiKQpMT0NWQUwoTE9DQUxFX0lMWkVSTywgIjEiKQpMT0NWQUwoTE9DQUxFX0lORUdOVU1CRVIsICIxIikKTE9DVkFMKExPQ0FMRV9TTkFUSVZFRElHSVRTLCAiMDEyMzQ1Njc4OSIpCkxPQ1ZBTChMT0NBTEVfU0NVUlJFTkNZLCAioyIpCkxPQ1ZBTChMT0NBTEVfU0lOVExTWU1CT0wsICJHQlAiKQpMT0NWQUwoTE9DQUxFX1NNT05ERUNJTUFMU0VQLCAiLiIpCkxPQ1ZBTChMT0NBTEVfU01PTlRIT1VTQU5EU0VQLCAiLCIpCkxPQ1ZBTChMT0NBTEVfU01PTkdST1VQSU5HLCAiMzswIikKTE9DVkFMKExPQ0FMRV9JQ1VSUkRJR0lUUywgIjIiKQpMT0NWQUwoTE9DQUxFX0lJTlRMQ1VSUkRJR0lUUywgIjIiKQpMT0NWQUwoTE9DQUxFX0lDVVJSRU5DWSwgIjAiKQpMT0NWQUwoTE9DQUxFX0lORUdDVVJSLCAiMSIpCkxPQ1ZBTChMT0NBTEVfU0RBVEUsICIvIikKTE9DVkFMKExPQ0FMRV9TVElNRSwgIjoiKQpMT0NWQUwoTE9DQUxFX1NTSE9SVERBVEUsICJkZC9NTS95eSIpCkxPQ1ZBTChMT0NBTEVfU0xPTkdEQVRFLCAiZGQgTU1NTSB5eXl5IikKTE9DVkFMKExPQ0FMRV9TVElNRUZPUk1BVCwgIkhIOm1tOnNzIikKTE9DVkFMKExPQ0FMRV9JREFURSwgIjEiKQpMT0NWQUwoTE9DQUxFX0lMREFURSwgIjEiKQpMT0NWQUwoTE9DQUxFX0lUSU1FLCAiMSIpCkxPQ1ZBTChMT0NBTEVfSVRJTUVNQVJLUE9TTiwgIjAiKQpMT0NWQUwoTE9DQUxFX0lDRU5UVVJZLCAiMCIpCkxPQ1ZBTChMT0NBTEVfSVRMWkVSTywgIjEiKQpMT0NWQUwoTE9DQUxFX0lEQVlMWkVSTywgIjEiKQpMT0NWQUwoTE9DQUxFX0lNT05MWkVSTywgIjEiKQpMT0NWQUwoTE9DQUxFX1MxMTU5LCAiQU0iKQpMT0NWQUwoTE9DQUxFX1MyMzU5LCAiUE0iKQpMT0NWQUwoTE9DQUxFX0lDQUxFTkRBUlRZUEUsICIxIikKTE9DVkFMKExPQ0FMRV9JT1BUSU9OQUxDQUxFTkRBUiwgIjAiKQpMT0NWQUwoTE9DQUxFX0lGSVJTVERBWU9GV0VFSywgIjAiKQpMT0NWQUwoTE9DQUxFX0lGSVJTVFdFRUtPRllFQVIsICIwIikKCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUUxLCAiTW9uZGF5IikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTIsICJUdWVzZGF5IikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTMsICJXZWRuZXNkYXkiKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNCwgIlRodXJzZGF5IikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTUsICJGcmlkYXkiKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNiwgIlNhdHVyZGF5IikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTcsICJTdW5kYXkiKQoKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTEsICJNb24iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FMiwgIlR1ZSIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUUzLCAiV2VkIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTQsICJUaHUiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FNSwgIkZyaSIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUU2LCAiU2F0IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTcsICJTdW4iKQoKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMSwgIkphbnVhcnkiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUyLCAiRmVicnVhcnkiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUzLCAiTWFyY2giKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU0LCAiQXByaWwiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU1LCAiTWF5IikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNiwgIkp1bmUiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU3LCAiSnVseSIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTgsICJBdWd1c3QiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU5LCAiU2VwdGVtYmVyIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTAsICJPY3RvYmVyIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTEsICJOb3ZlbWJlciIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEyLCAiRGVjZW1iZXIiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUxMywgIiIpCgpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxLCAiSmFuIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMiwgIkZlYiIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTMsICJNYXIiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU0LCAiQXByIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNSwgIk1heSIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTYsICJKdW4iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU3LCAiSnVsIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FOCwgIkF1ZyIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTksICJTZXAiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMCwgIk9jdCIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTExLCAiTm92IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTIsICJEZWMiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMywgIiIpCgpMT0NWQUwoTE9DQUxFX1NQT1NJVElWRVNJR04sICIiKQpMT0NWQUwoTE9DQUxFX1NORUdBVElWRVNJR04sICItIikKTE9DVkFMKExPQ0FMRV9JUE9TU0lHTlBPU04sICIzIikKTE9DVkFMKExPQ0FMRV9JTkVHU0lHTlBPU04sICIzIikKTE9DVkFMKExPQ0FMRV9JUE9TU1lNUFJFQ0VERVMsICIxIikKTE9DVkFMKExPQ0FMRV9JUE9TU0VQQllTUEFDRSwgIjAiKQpMT0NWQUwoTE9DQUxFX0lORUdTWU1QUkVDRURFUywgIjEiKQpMT0NWQUwoTE9DQUxFX0lORUdTRVBCWVNQQUNFLCAiMCIpCi8qIExPQ1ZBTChMT0NBTEVfRk9OVFNJR05BVFVSRSwgIiIpICovCkxPQ1ZBTChMT0NBTEVfU0lTTzYzOUxBTkdOQU1FLCJlbiIpCkxPQ1ZBTChMT0NBTEVfU0lTTzMxNjZDVFJZTkFNRSwiR0IiKQo=