IyBNaWNyb3NvZnQgRGV2ZWxvcGVyIFN0dWRpbyBQcm9qZWN0IEZpbGUgLSBOYW1lPSJjanBlZyIgLSBQYWNrYWdlIE93bmVyPTw0PgojIE1pY3Jvc29mdCBEZXZlbG9wZXIgU3R1ZGlvIEdlbmVyYXRlZCBCdWlsZCBGaWxlLCBGb3JtYXQgVmVyc2lvbiA2LjAwCiMgKiogTklDSFQgQkVBUkJFSVRFTiAqKgoKIyBUQVJHVFlQRSAiV2luMzIgKHg4NikgQ29uc29sZSBBcHBsaWNhdGlvbiIgMHgwMTAzCgpDRkc9Y2pwZWcgLSBXaW4zMgohTUVTU0FHRSBEaWVzIGlzdCBrZWluIGeBbHRpZ2VzIE1ha2VmaWxlLiBadW0gRXJzdGVsbGVuIGRpZXNlcyBQcm9qZWt0cyBtaXQgTk1BS0UKIU1FU1NBR0UgdmVyd2VuZGVuIFNpZSBkZW4gQmVmZWhsICJNYWtlZmlsZSBleHBvcnRpZXJlbiIgdW5kIGaBaHJlbiBTaWUgZGVuIEJlZmVobAohTUVTU0FHRSAKIU1FU1NBR0UgTk1BS0UgL2YgImNqcGVnLm1hayIuCiFNRVNTQUdFIAohTUVTU0FHRSBTaWUga/dubmVuIGJlaW0gQXVzZoFocmVuIHZvbiBOTUFLRSBlaW5lIEtvbmZpZ3VyYXRpb24gYW5nZWJlbgohTUVTU0FHRSBkdXJjaCBEZWZpbmllcmVuIGRlcyBNYWtyb3MgQ0ZHIGluIGRlciBCZWZlaGxzemVpbGUuIFp1bSBCZWlzcGllbDoKIU1FU1NBR0UgCiFNRVNTQUdFIE5NQUtFIC9mICJjanBlZy5tYWsiIENGRz0iY2pwZWcgLSBXaW4zMiIKIU1FU1NBR0UgCiFNRVNTQUdFIEaBciBkaWUgS29uZmlndXJhdGlvbiBzdGVoZW4genVyIEF1c3dhaGw6CiFNRVNTQUdFIAohTUVTU0FHRSAiY2pwZWcgLSBXaW4zMiIgKGJhc2llcmVuZCBhdWYgICJXaW4zMiAoeDg2KSBDb25zb2xlIEFwcGxpY2F0aW9uIikKIU1FU1NBR0UgCgojIEJlZ2luIFByb2plY3QKIyBQUk9QIEFsbG93UGVyQ29uZmlnRGVwZW5kZW5jaWVzIDAKIyBQUk9QIFNjY19Qcm9qTmFtZSAiIgojIFBST1AgU2NjX0xvY2FsUGF0aCAiIgpDUFA9Y2wuZXhlClJTQz1yYy5leGUKIyBQUk9QIEJBU0UgVXNlX01GQyAwCiMgUFJPUCBCQVNFIFVzZV9EZWJ1Z19MaWJyYXJpZXMgMAojIFBST1AgQkFTRSBPdXRwdXRfRGlyICIuXGNqcGVnXFJlbGVhc2UiCiMgUFJPUCBCQVNFIEludGVybWVkaWF0ZV9EaXIgIi5cY2pwZWdcUmVsZWFzZSIKIyBQUk9QIEJBU0UgVGFyZ2V0X0RpciAiLlxjanBlZyIKIyBQUk9QIFVzZV9NRkMgMAojIFBST1AgVXNlX0RlYnVnX0xpYnJhcmllcyAwCiMgUFJPUCBPdXRwdXRfRGlyICIuXFJlbGVhc2UiCiMgUFJPUCBJbnRlcm1lZGlhdGVfRGlyICIuXFJlbGVhc2VcY2pwZWciCiMgUFJPUCBJZ25vcmVfRXhwb3J0X0xpYiAwCiMgUFJPUCBUYXJnZXRfRGlyICIuXGNqcGVnIgojIEFERCBCQVNFIENQUCAvbm9sb2dvIC9XMyAvR1ggL08yIC9EICJXSU4zMiIgL0QgIk5ERUJVRyIgL0QgIl9DT05TT0xFIiAvWVggL2MKIyBBREQgQ1BQIC9ub2xvZ28gL0c2IC9NVCAvVzMgL0dYIC9PeCAvT2EgL09iMiAvRCAiV0lOMzIiIC9EICJOREVCVUciIC9EICJfQ09OU09MRSIgL1lYIC9GRCAvYwojIEFERCBCQVNFIFJTQyAvbCAweDQwOSAvZCAiTkRFQlVHIgojIEFERCBSU0MgL2wgMHg0MDkgL2QgIk5ERUJVRyIKQlNDMzI9YnNjbWFrZS5leGUKIyBBREQgQkFTRSBCU0MzMiAvbm9sb2dvCiMgQUREIEJTQzMyIC9ub2xvZ28KTElOSzMyPWxpbmsuZXhlCiMgQUREIEJBU0UgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9tYWNoaW5lOkkzODYKIyBBREQgTElOSzMyIFJlbGVhc2VcanBlZy5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgZ2RpMzIubGliIHdpbnNwb29sLmxpYiBjb21kbGczMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIG9sZTMyLmxpYiBvbGVhdXQzMi5saWIgdXVpZC5saWIgb2RiYzMyLmxpYiBvZGJjY3AzMi5saWIgL25vbG9nbyAvc3Vic3lzdGVtOmNvbnNvbGUgL21hY2hpbmU6STM4NgojIEJlZ2luIFRhcmdldAoKIyBOYW1lICJjanBlZyAtIFdpbjMyIgojIEJlZ2luIEdyb3VwICJRdWVsbGNvZGVkYXRlaWVuIgoKIyBQUk9QIERlZmF1bHRfRmlsdGVyICJjcHA7YztjeHg7cmM7ZGVmO3I7b2RsO2lkbDtocGo7YmF0O2ZvcjtmOTAiCiMgQmVnaW4gU291cmNlIEZpbGUKClNPVVJDRT0uXGNkanBlZy5jCiMgRW5kIFNvdXJjZSBGaWxlCiMgQmVnaW4gU291cmNlIEZpbGUKClNPVVJDRT0uXGNqcGVnLmMKIyBFbmQgU291cmNlIEZpbGUKIyBCZWdpbiBTb3VyY2UgRmlsZQoKU09VUkNFPS5ccmRibXAuYwojIEVuZCBTb3VyY2UgRmlsZQojIEJlZ2luIFNvdXJjZSBGaWxlCgpTT1VSQ0U9LlxyZGdpZi5jCiMgRW5kIFNvdXJjZSBGaWxlCiMgQmVnaW4gU291cmNlIEZpbGUKClNPVVJDRT0uXHJkcHBtLmMKIyBFbmQgU291cmNlIEZpbGUKIyBCZWdpbiBTb3VyY2UgRmlsZQoKU09VUkNFPS5ccmRybGUuYwojIEVuZCBTb3VyY2UgRmlsZQojIEJlZ2luIFNvdXJjZSBGaWxlCgpTT1VSQ0U9LlxyZHN3aXRjaC5jCiMgRW5kIFNvdXJjZSBGaWxlCiMgQmVnaW4gU291cmNlIEZpbGUKClNPVVJDRT0uXHJkdGFyZ2EuYwojIEVuZCBTb3VyY2UgRmlsZQojIEVuZCBHcm91cAojIEJlZ2luIEdyb3VwICJIZWFkZXItRGF0ZWllbiIKCiMgUFJPUCBEZWZhdWx0X0ZpbHRlciAiaDtocHA7aHh4O2htO2lubDtmaTtmZCIKIyBCZWdpbiBTb3VyY2UgRmlsZQoKU09VUkNFPS5cY2RlcnJvci5oCiMgRW5kIFNvdXJjZSBGaWxlCiMgQmVnaW4gU291cmNlIEZpbGUKClNPVVJDRT0uXGNkanBlZy5oCiMgRW5kIFNvdXJjZSBGaWxlCiMgQmVnaW4gU291cmNlIEZpbGUKClNPVVJDRT0uXGpjb25maWcuaAojIEVuZCBTb3VyY2UgRmlsZQojIEJlZ2luIFNvdXJjZSBGaWxlCgpTT1VSQ0U9LlxqZXJyb3IuaAojIEVuZCBTb3VyY2UgRmlsZQojIEJlZ2luIFNvdXJjZSBGaWxlCgpTT1VSQ0U9LlxqaW5jbHVkZS5oCiMgRW5kIFNvdXJjZSBGaWxlCiMgQmVnaW4gU291cmNlIEZpbGUKClNPVVJDRT0uXGptb3JlY2ZnLmgKIyBFbmQgU291cmNlIEZpbGUKIyBCZWdpbiBTb3VyY2UgRmlsZQoKU09VUkNFPS5canBlZ2xpYi5oCiMgRW5kIFNvdXJjZSBGaWxlCiMgQmVnaW4gU291cmNlIEZpbGUKClNPVVJDRT0uXGp2ZXJzaW9uLmgKIyBFbmQgU291cmNlIEZpbGUKIyBFbmQgR3JvdXAKIyBCZWdpbiBHcm91cCAiUmVzc291cmNlbmRhdGVpZW4iCgojIFBST1AgRGVmYXVsdF9GaWx0ZXIgImljbztjdXI7Ym1wO2RsZztyYzI7cmN0O2JpbjtjbnQ7cnRmO2dpZjtqcGc7anBlZztqcGUiCiMgRW5kIEdyb3VwCiMgRW5kIFRhcmdldAojIEVuZCBQcm9qZWN0Cg==