LyoKICoJT0xFMk5MUyBsaWJyYXJ5CiAqICAgICAgU3BhbmlzaCAoQ29zdGEgUmljYSkKICoKICogQ29weXJpZ2h0IDE5OTggTWFyY2VsIEJhdXIKICoKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiAqLwoKTE9DVkFMKExPQ0FMRV9JTEFOR1VBR0UsIjE0MGEiKQpMT0NWQUwoTE9DQUxFX1NMQU5HVUFHRSwiRXNwYfFvbCIpCkxPQ1ZBTChMT0NBTEVfU0VOR0xBTkdVQUdFLCJTcGFuaXNoIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTEFOR05BTUUsImVzYSIpCkxPQ1ZBTChMT0NBTEVfU05BVElWRUxBTkdOQU1FLCJFc3Bh8W9sIikKTE9DVkFMKExPQ0FMRV9JQ09VTlRSWSwgIjUwNiIpCkxPQ1ZBTChMT0NBTEVfU0NPVU5UUlksIkNvc3RhIFJpY2EiKQpMT0NWQUwoTE9DQUxFX1NFTkdDT1VOVFJZLCJDb3N0YSBSaWNhIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWQ1RSWU5BTUUsIkNSSSIpCkxPQ1ZBTChMT0NBTEVfU05BVElWRUNUUllOQU1FLCJDb3N0YSBSaWNhIikKTE9DVkFMKExPQ0FMRV9JREVGQVVMVExBTkdVQUdFLCIxNDBhIikKTE9DVkFMKExPQ0FMRV9JREVGQVVMVENPVU5UUlksIjM0IikKTE9DVkFMKExPQ0FMRV9JREVGQVVMVENPREVQQUdFLCI4NTAiKQpMT0NWQUwoTE9DQUxFX0lERUZBVUxUQU5TSUNPREVQQUdFLCIxMjUyIikKTE9DVkFMKExPQ0FMRV9TTElTVCwgIiwiKQpMT0NWQUwoTE9DQUxFX0lNRUFTVVJFLCAiMCIpCkxPQ1ZBTChMT0NBTEVfU0RFQ0lNQUwsICIsIikKTE9DVkFMKExPQ0FMRV9TVEhPVVNBTkQsICIuIikKTE9DVkFMKExPQ0FMRV9TR1JPVVBJTkcsICIzOzAiKQpMT0NWQUwoTE9DQUxFX0lESUdJVFMsICIyIikKTE9DVkFMKExPQ0FMRV9JTFpFUk8sICIxIikKTE9DVkFMKExPQ0FMRV9JTkVHTlVNQkVSLCAiMSIpCkxPQ1ZBTChMT0NBTEVfU05BVElWRURJR0lUUywgIjAxMjM0NTY3ODkiKQpMT0NWQUwoTE9DQUxFX1NDVVJSRU5DWSwiQyIpCkxPQ1ZBTChMT0NBTEVfU0lOVExTWU1CT0wsICJDUkMiKQpMT0NWQUwoTE9DQUxFX1NNT05ERUNJTUFMU0VQLCAiLCIpCkxPQ1ZBTChMT0NBTEVfU01PTlRIT1VTQU5EU0VQLCAiLiIpCkxPQ1ZBTChMT0NBTEVfU01PTkdST1VQSU5HLCIzOzAiKQpMT0NWQUwoTE9DQUxFX0lDVVJSRElHSVRTLCAiMiIpCkxPQ1ZBTChMT0NBTEVfSUlOVExDVVJSRElHSVRTLCAiMiIpCkxPQ1ZBTChMT0NBTEVfSUNVUlJFTkNZLCAiMCIpCkxPQ1ZBTChMT0NBTEVfSU5FR0NVUlIsICIwIikKTE9DVkFMKExPQ0FMRV9TREFURSwgIi8iKQpMT0NWQUwoTE9DQUxFX1NUSU1FLCAiOiIpCkxPQ1ZBTChMT0NBTEVfU1NIT1JUREFURSwgImRkL01NL3l5IikKTE9DVkFMKExPQ0FMRV9TTE9OR0RBVEUsICJkZGRkLCBkZCcgZGUgJ01NTU0nIGRlICd5eXl5IikKTE9DVkFMKExPQ0FMRV9TVElNRUZPUk1BVCwgImhoOm1tOnNzIHR0IikKTE9DVkFMKExPQ0FMRV9JREFURSwgIjEiKQpMT0NWQUwoTE9DQUxFX0lMREFURSwgIjEiKQpMT0NWQUwoTE9DQUxFX0lUSU1FLCIxIikKTE9DVkFMKExPQ0FMRV9JVElNRU1BUktQT1NOLCAiMCIpCkxPQ1ZBTChMT0NBTEVfSUNFTlRVUlksICIwIikKTE9DVkFMKExPQ0FMRV9JVExaRVJPLCIxIikKTE9DVkFMKExPQ0FMRV9JREFZTFpFUk8sICIxIikKTE9DVkFMKExPQ0FMRV9JTU9OTFpFUk8sICIxIikKTE9DVkFMKExPQ0FMRV9TMTE1OSwgImEubS4iKQpMT0NWQUwoTE9DQUxFX1MyMzU5LCAicC5tLiIpCkxPQ1ZBTChMT0NBTEVfSUNBTEVOREFSVFlQRSwgIjEiKQpMT0NWQUwoTE9DQUxFX0lPUFRJT05BTENBTEVOREFSLCAiMCIpCkxPQ1ZBTChMT0NBTEVfSUZJUlNUREFZT0ZXRUVLLCAiNiIpCkxPQ1ZBTChMT0NBTEVfSUZJUlNUV0VFS09GWUVBUiwgIjAiKQoKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTEsImx1bmVzIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTIsIm1hcnRlcyIpCkxPQ1ZBTChMT0NBTEVfU0RBWU5BTUUzLCJtaelyY29sZXMiKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNCwianVldmVzIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTUsInZpZXJuZXMiKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNiwic+FiYWRvIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTcsImRvbWluZ28iKQoKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTEsImx1biIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUUyLCJtYXIiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FMywibWnpIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTQsImp1ZSIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUU1LCJ2aWUiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FNiwic+FiIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTcsImRvbSIpCgpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUxLCJlbmVybyIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTIsImZlYnJlcm8iKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUzLCJtYXJ6byIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTQsImFicmlsIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNSwibWF5byIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTYsImp1bmlvIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNywianVsaW8iKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU4LCJhZ29zdG8iKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU5LCJzZXB0aWVtYnJlIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTAsIm9jdHVicmUiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUxMSwibm92aWVtYnJlIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMTIsImRpY2llbWJyZSIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEzLCIiKQoKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMSwiZW5lIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMiwiZmViIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMywibWFyIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNCwiYWJyIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNSwibWF5IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNiwianVuIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNywianVsIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FOCwiYWdvIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FOSwic2VwIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTAsIm9jdCIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTExLCJub3YiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMiwiZGljIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTMsIiIpCgpMT0NWQUwoTE9DQUxFX1NQT1NJVElWRVNJR04sICIiKQpMT0NWQUwoTE9DQUxFX1NORUdBVElWRVNJR04sICItIikKTE9DVkFMKExPQ0FMRV9JUE9TU0lHTlBPU04sICIzIikKTE9DVkFMKExPQ0FMRV9JTkVHU0lHTlBPU04sICIwIikKTE9DVkFMKExPQ0FMRV9JUE9TU1lNUFJFQ0VERVMsICIxIikKTE9DVkFMKExPQ0FMRV9JUE9TU0VQQllTUEFDRSwgIjAiKQpMT0NWQUwoTE9DQUxFX0lORUdTWU1QUkVDRURFUywgIjEiKQpMT0NWQUwoTE9DQUxFX0lORUdTRVBCWVNQQUNFLCAiMCIpCkxPQ1ZBTChMT0NBTEVfRk9OVFNJR05BVFVSRSwgIi8iKQpMT0NWQUwoTE9DQUxFX1NJU082MzlMQU5HTkFNRSwiZXMiKQpMT0NWQUwoTE9DQUxFX1NJU08zMTY2Q1RSWU5BTUUsIkNSIikKTE9DVkFMKExPQ0FMRV9JREVGQVVMVEVCQ0RJQ0NPREVQQUdFLCAiMjAyODQiKQpMT0NWQUwoTE9DQUxFX0lQQVBFUlNJWkUsICIxIikKTE9DVkFMKExPQ0FMRV9TRU5HQ1VSUk5BTUUsICJDb3N0YSBSaWNhbiBDb2xvbiIpCkxPQ1ZBTChMT0NBTEVfU05BVElWRUNVUlJOQU1FLCAiQ29s824iKQpMT0NWQUwoTE9DQUxFX1NZRUFSTU9OVEgsICJNTU1NJyBkZSAneXl5eSIpCkxPQ1ZBTChMT0NBTEVfU1NPUlROQU1FLCAiRGVmYXVsdCIpCkxPQ1ZBTChMT0NBTEVfSURJR0lUU1VCU1RJVFVUSU9OLCAiIiIiKQo=