LyoKICoJT0xFMk5MUyBsaWJyYXJ5CiAqICAgICAgQ2FuYWRhIChGcmVuY2gpCiAqCiAqIENvcHlyaWdodCAxOTk4IE1hcmNlbCBCYXVyCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQogKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogKi8KCkxPQ1ZBTChMT0NBTEVfSUxBTkdVQUdFLCIwYzBjIikKTE9DVkFMKExPQ0FMRV9TTEFOR1VBR0UsIkZyYW7nYWlzIChDYW5hZGEpIikKTE9DVkFMKExPQ0FMRV9TRU5HTEFOR1VBR0UsIkZyZW5jaCAoQ2FuYWRhKSIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkxBTkdOQU1FLCJmcmMiKQpMT0NWQUwoTE9DQUxFX1NOQVRJVkVMQU5HTkFNRSwiZnJhbudhaXMiKQpMT0NWQUwoTE9DQUxFX0lDT1VOVFJZLCIyIikKTE9DVkFMKExPQ0FMRV9TQ09VTlRSWSwiQ2FuYWRhIikKTE9DVkFMKExPQ0FMRV9TRU5HQ09VTlRSWSwiQ2FuYWRhIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWQ1RSWU5BTUUsIkNBTiIpCkxPQ1ZBTChMT0NBTEVfU05BVElWRUNUUllOQU1FLCJDYW5hZGEiKQpMT0NWQUwoTE9DQUxFX0lERUZBVUxUTEFOR1VBR0UsIjA0MGMiKQpMT0NWQUwoTE9DQUxFX0lERUZBVUxUQ09VTlRSWSwiMiIpCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRDT0RFUEFHRSwiODYzIikKTE9DVkFMKExPQ0FMRV9JREVGQVVMVEFOU0lDT0RFUEFHRSwiMTI1MiIpCkxPQ1ZBTChMT0NBTEVfSURFRkFVTFRNQUNDT0RFUEFHRSwgIjEwMDAwIikKTE9DVkFMKExPQ0FMRV9TTElTVCwiOyIpCi8qIExPQ1ZBTChMT0NBTEVfSU1FQVNVUkUsIiIpICovCkxPQ1ZBTChMT0NBTEVfU0RFQ0lNQUwsIiwiKQpMT0NWQUwoTE9DQUxFX1NUSE9VU0FORCwiICIpCkxPQ1ZBTChMT0NBTEVfU0dST1VQSU5HLCAiMzswIikKTE9DVkFMKExPQ0FMRV9JRElHSVRTLCIyIikKTE9DVkFMKExPQ0FMRV9JTFpFUk8sIjEiKQovKiBMT0NWQUwoTE9DQUxFX0lORUdOVU1CRVIpICovCkxPQ1ZBTChMT0NBTEVfU05BVElWRURJR0lUUywgIjAxMjM0NTY3ODkiKQpMT0NWQUwoTE9DQUxFX1NDVVJSRU5DWSwiJCIpCkxPQ1ZBTChMT0NBTEVfU0lOVExTWU1CT0wsICJDQUQiKQpMT0NWQUwoTE9DQUxFX1NNT05ERUNJTUFMU0VQLCIsIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhPVVNBTkRTRVAsIiAiKQpMT0NWQUwoTE9DQUxFX1NNT05HUk9VUElORywgIjM7MCIpCkxPQ1ZBTChMT0NBTEVfSUNVUlJESUdJVFMsIjIiKQpMT0NWQUwoTE9DQUxFX0lJTlRMQ1VSUkRJR0lUUywgIjIiKQovKiBMT0NWQUwoTE9DQUxFX0lDVVJSRU5DWSwiMyIpICovCi8qIExPQ1ZBTChMT0NBTEVfSU5FR0NVUlIsIjgiKSAqLwpMT0NWQUwoTE9DQUxFX1NEQVRFLCIvIikKTE9DVkFMKExPQ0FMRV9TVElNRSwiOiIpCkxPQ1ZBTChMT0NBTEVfU1NIT1JUREFURSwiZGQvTU0veXl5eSIpCkxPQ1ZBTChMT0NBTEVfU0xPTkdEQVRFLCJkIE1NTU0sIHl5eXkiKQpMT0NWQUwoTE9DQUxFX1NUSU1FRk9STUFULCAiaGg6bW06c3MiKQovKiBMT0NWQUwoTE9DQUxFX0lEQVRFLCIxIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTERBVEUpICovCi8qIExPQ1ZBTChMT0NBTEVfSVRJTUUsIjEiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lUSU1FTUFSS1BPU04pICovCkxPQ1ZBTChMT0NBTEVfSUNFTlRVUlksICIwIikKTE9DVkFMKExPQ0FMRV9JVExaRVJPLCIxIikKTE9DVkFMKExPQ0FMRV9JREFZTFpFUk8sICIwIikKTE9DVkFMKExPQ0FMRV9JTU9OTFpFUk8sICIwIikKTE9DVkFMKExPQ0FMRV9TMTE1OSwgIiIpCkxPQ1ZBTChMT0NBTEVfUzIzNTksICIiKQpMT0NWQUwoTE9DQUxFX0lDQUxFTkRBUlRZUEUsICIxIikKLyogTE9DVkFMKExPQ0FMRV9JT1BUSU9OQUxDQUxFTkRBUikgKi8KTE9DVkFMKExPQ0FMRV9JRklSU1REQVlPRldFRUssICI2IikKTE9DVkFMKExPQ0FMRV9JRklSU1RXRUVLT0ZZRUFSLCAiMCIpCgpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FMSwibHVuZGkiKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FMiwibWFyZGkiKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FMywibWVyY3JlZGkiKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNCwiamV1ZGkiKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNSwidmVuZHJlZGkiKQpMT0NWQUwoTE9DQUxFX1NEQVlOQU1FNiwic2FtZWRpIikKTE9DVkFMKExPQ0FMRV9TREFZTkFNRTcsImRpbWFuY2hlIikKCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUUxLCJsdW4iKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FMiwibWFyIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTMsIm1lciIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUU0LCJqZXUiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZEQVlOQU1FNSwidmVuIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWREFZTkFNRTYsInNhbSIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVkRBWU5BTUU3LCJkaW0iKQoKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FMSwiamFudmllciIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTIsImbpdnJpZXIiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUzLCJtYXJzIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNCwiYXZyaWwiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU1LCJtYWkiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU2LCJqdWluIikKTE9DVkFMKExPQ0FMRV9TTU9OVEhOQU1FNywianVpbGxldCIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTgsImFv+3QiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUU5LCJzZXB0ZW1icmUiKQpMT0NWQUwoTE9DQUxFX1NNT05USE5BTUUxMCwib2N0b2JyZSIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTExLCJub3ZlbWJyZSIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEyLCJk6WNlbWJyZSIpCkxPQ1ZBTChMT0NBTEVfU01PTlRITkFNRTEzLCIiKQoKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMSwiamFudiIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTIsImbpdnIiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUzLCJtYXJzIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNCwiYXZyIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNSwibWFpIikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FNiwianVpbiIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTcsImp1aWwiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUU4LCJhb/t0IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FOSwic2VwdCIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTEwLCJvY3QiKQpMT0NWQUwoTE9DQUxFX1NBQkJSRVZNT05USE5BTUUxMSwibm92IikKTE9DVkFMKExPQ0FMRV9TQUJCUkVWTU9OVEhOQU1FMTIsImTpYyIpCkxPQ1ZBTChMT0NBTEVfU0FCQlJFVk1PTlRITkFNRTEzLCIiKQoKTE9DVkFMKExPQ0FMRV9TUE9TSVRJVkVTSUdOLCAiIikKTE9DVkFMKExPQ0FMRV9TTkVHQVRJVkVTSUdOLCAiLSIpCi8qIExPQ1ZBTChMT0NBTEVfSVBPU1NJR05QT1NOLCAiIikgKi8KLyogTE9DVkFMKExPQ0FMRV9JTkVHU0lHTlBPU04sICIiKSAqLwovKiBMT0NWQUwoTE9DQUxFX0lQT1NTWU1QUkVDRURFUywgIiIpICovCkxPQ1ZBTChMT0NBTEVfSVBPU1NFUEJZU1BBQ0UsICIwIikKLyogTE9DVkFMKExPQ0FMRV9JTkVHU1lNUFJFQ0VERVMsICIiKSAqLwpMT0NWQUwoTE9DQUxFX0lORUdTRVBCWVNQQUNFLCAiMCIpCi8qIExPQ1ZBTChMT0NBTEVfRk9OVFNJR05BVFVSRSwgIiIpICovCkxPQ1ZBTChMT0NBTEVfU0lTTzYzOUxBTkdOQU1FLCJmciIpCkxPQ1ZBTChMT0NBTEVfU0lTTzMxNjZDVFJZTkFNRSwiQ0EiKQo=