LyoKICoJT0xFMk5MUyBsaWJyYXJ5CiAqICAgICAgSXRhbHkKICoKICogQ29weXJpZ2h0IDE5OTggTWFyY2VsIEJhdXIKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiAqLwoKTE9DVkFMKExPQ0FMRV9JTEFOR1VBR0UsIjA0MTAiKQpMT0NWQUwoTE9DQUxFX1NMQU5HVUFHRSwiSXRhbGlhbm8iKQpMT0NWQUwoTE9DQUxFX1NFTkdMQU5HVUFHRSwiSXRhbGlhbiIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkxBTkdOQU1FLCJpdGEiKQpMT0NWQUwoTE9DQUxFX1NOQVRJVkVMQU5HTkFNRSwiSXRhbGlhbm8iKQpMT0NWQUwoTE9DQUxFX0lDT1VOVFJZLCIzOSIpCkxPQ1ZBTChMT0NBTEVfU0NPVU5UUlksIkl0YWxpYSIpCkxPQ1ZBTChMT0NBTEVfU0VOR0NPVU5UUlksIkl0YWx5IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWQ1RSWU5BTUUsIklUQSIpCkxPQ1ZBTChMT0NBTEVfU05BVElWRUNUUllOQU1FLCJJdGFsaWEiKQpMT0NWQUwoTE9DQUxFX0lERUZBVUxUTEFOR1VBR0UsIjA0MTAiKQpMT0NWQUwoTE9DQUxFX0lERUZBVUxUQ09VTlRSWSwiMzkiKQpMT0NWQUwoTE9DQUxFX0lERUZBVUxUQ09ERVBBR0UsIjg1MCIpCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRBTlNJQ09ERVBBR0UsIjEyNTIiKQpMT0NWQUwoTE9DQUxFX0lERUZBVUxUTUFDQ09ERVBBR0UsICIxMDAwMCIpCkxPQ1ZBTChMT0NBTEVfU0xJU1QsIjsiKQpMT0NWQUwoTE9DQUxFX0lNRUFTVVJFLCIwIikKTE9DVkFMKExPQ0FMRV9TREVDSU1BTCwiLCIpCkxPQ1ZBTChMT0NBTEVfU1RIT1VTQU5ELCIuIikKLyogTE9DVkFMKExPQ0FMRV9TR1JPVVBJTkcpICovCkxPQ1ZBTChMT0NBTEVfSURJR0lUUywiMiIpCkxPQ1ZBTChMT0NBTEVfSUxaRVJPLCIxIikKLyogTE9DVkFMKExPQ0FMRV9JTkVHTlVNQkVSKSAqLwpMT0NWQUwoTE9DQUxFX1NOQVRJVkVESUdJVFMsICIwMTIzNDU2Nzg5IikKTE9DVkFMKExPQ0FMRV9TQ1VSUkVOQ1ksIqQiKQpMT0NWQUwoTE9DQUxFX1NJTlRMU1lNQk9MLCAiRVVSIikKLyogTE9DVkFMKExPQ0FMRV9TTU9OREVDSU1BTFNFUCkgKi8KLyogTE9DVkFMKExPQ0FMRV9TTU9OVEhPVVNBTkRTRVApICovCkxPQ1ZBTChMT0NBTEVfU01PTkdST1VQSU5HLCIzOzAiKQpMT0NWQUwoTE9DQUxFX0lDVVJSRElHSVRTLCIyIikKLyogTE9DVkFMKExPQ0FMRV9JSU5UTENVUlJESUdJVFMpICovCkxPQ1ZBTChMT0NBTEVfSUNVUlJFTkNZLCIzIikKTE9DVkFMKExPQ0FMRV9JTkVHQ1VSUiwiOCIpCkxPQ1ZBTChMT0NBTEVfU0RBVEUsIi4iKQpMT0NWQUwoTE9DQUxFX1NUSU1FLCI6IikKTE9DVkFMKExPQ0FMRV9TU0hPUlREQVRFLCJkZC5NTS55eXl5IikKTE9DVkFMKExPQ0FMRV9TTE9OR0RBVEUsImRkZCwgZC4gTU1NTSB5eXl5IikKLyogTE9DVkFMKExPQ0FMRV9TVElNRUZPUk1BVCkgKi8KTE9DVkFMKExPQ0FMRV9JREFURSwiMSIpCi8qIExPQ1ZBTChMT0NBTEVfSUxEQVRFKSAqLwpMT0NWQUwoTE9DQUxFX0lUSU1FLCIxIikKLyogTE9DVkFMKExPQ0FMRV9JVElNRU1BUktQT1NOKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lDRU5UVVJZKSAqLwpMT0NWQUwoTE9DQUxFX0lUTFpFUk8sIjEiKQovKiBMT0NWQUwoTE9DQUxFX0lEQVlMWkVSTykgKi8KLyogTE9DVkFMKExPQ0FMRV9JTU9OTFpFUk8pICovCi8qIExPQ1ZBTChMT0NBTEVfUzExNTkpICovCi8qIExPQ1ZBTChMT0NBTEVfUzIzNTkpICovCkxPQ1ZBTChMT0NBTEVfSUNBTEVOREFSVFlQRSwgIjEiKQovKiBMT0NWQUwoTE9DQUxFX0lPUFRJT05BTENBTEVOREFSKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lGSVJTVERBWU9GV0VFSykgKi8KLyogTE9DVkFMKExPQ0FMRV9JRklSU1RXRUVLT0ZZRUFSKSAqLwoKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTEsIkx1bmVk7CIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUUyLCJNYXJ0ZWTsIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTMsIk1lcmNvbGVk7CIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUU0LCJHaW92ZWTsIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTUsIlZlbmVyZOwiKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNiwiU2FiYXRvIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTcsIkRvbWVuaWNhIikKCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUUxLCJMdSIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUUyLCJNYSIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUUzLCJNZSIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUU0LCJHaSIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUU1LCJWZSIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUU2LCJTYSIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUU3LCJEbyIpCgpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUxLCJnZW5uYWlvIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMiwiZmViYnJhaW8iKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUzLCJtYXJ6byIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTQsImFwcmlsZSIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTUsIm1hZ2dpbyIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTYsImdpdWdubyIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTcsImx1Z2xpbyIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTgsImFnb3N0byIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTksInNldHRlbWJyZSIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEwLCJvdHRvYnJlIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTEsIm5vdmVtYnJlIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTIsImRpY2VtYnJlIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTMsIiIpCgpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxLCJnZW4iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUyLCJmZWIiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUzLCJtYXIiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU0LCJhcHIiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU1LCJtYWciKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU2LCJnaXUiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU3LCJsdWciKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU4LCJhZ28iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU5LCJzZXQiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMCwib3R0IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTEsIm5vdiIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTEyLCJkaWMiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMywiIikKCi8qIExPQ1ZBTChMT0NBTEVfU1BPU0lUSVZFU0lHTikgKi8KLyogTE9DVkFMKExPQ0FMRV9TTkVHQVRJVkVTSUdOKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lQT1NTSUdOUE9TTikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTkVHU0lHTlBPU04pICovCi8qIExPQ1ZBTChMT0NBTEVfSVBPU1NZTVBSRUNFREVTKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lQT1NTRVBCWVNQQUNFKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lORUdTWU1QUkVDRURFUykgKi8KLyogTE9DVkFMKExPQ0FMRV9JTkVHU0VQQllTUEFDRSkgKi8KLyogTE9DVkFMKExPQ0FMRV9GT05UU0lHTkFUVVJFLCAiIikgKi8KTE9DVkFMKExPQ0FMRV9TSVNPNjM5TEFOR05BTUUsIml0IikKTE9DVkFMKExPQ0FMRV9TSVNPMzE2NkNUUllOQU1FLCJJVCIpCiAKLyogY2FsZW5kYXJpbyBncmVnb3JpYW5vICovCg==