IyBNZW5zYWplcyBlbiBlc3Bh8W9sIHBhcmEgR05VIEJpc29uLgojIENvcHlyaWdodCAoQykgMTk5OCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIyBOaWNvbOFzIEdhcmPtYS1QZWRyYWphcyA8bmdhcmNpYS1wZWRyYWphc0BhY20ub3JnPiwgMTk5OC4KIwojIENvcnJlZ2lkbyBwb3I6CiMKIyBjbGwgLSBDYXJsb3MgTGluYXJlcyBM83BleiAgICAgICAgY2xpbmFyZXNAYWNtLm9yZwojICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGluYXJlc0BkZWxpY2lhcy5kaWEuZmkudXBtLmVzCiMKIyBOb3RhczoKIwojIDEuIE5pY29s4XMsIGVuIGFsZ3VuYXMgb2Nhc2lvbmVzIG5vdGFy4XMgcXVlIGFsZ3Vub3MgYG1zZ3N0cicgbm8gZXN04W4KIyBpbmRlbnRhZG9zIGNvbW8gbG9zIGBtc2dpZCcuIE5vIHRlIHByZW9jdXBlcywgZXNvIGVzIHBvcnF1ZSB5byB1dGlsaXpvCiMgZWwgYHBvLW1vZGUnIGRlIEVtYWNzLCAuLi4gyWwgZXMgZWwgcmVzcG9uc2FibGUgZGUgZXNhcyBpbmRlbnRhY2lvbmVzCiMgZGVsIGBtc2dzdHInIDopCiMKIyAyLiBUb2RvcyBsb3MgY29tZW50YXJpb3MgcXVlIGNvbnRlbmdhbiAiRHVkYToiIGRlYmllcmFuIHJldmlzYXJzZS4KIwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgRW4gbWkgb3BpbmnzbiBoYXMgaGVjaG8gdW4gZXhjZWxlbnRlIHRyYWJham8geSB0ZSBhbmltbyBhIHF1ZSBzaWdhcwojIG1hbnRlbmllbmRvIGVzdGEgdHJhZHVjY2nzbiB5IGEgcXVlIGxvIGludGVudGVzIGNvbiBvdHJhcy4KIwojICihdGUgbG8gZGljZSBlbCB07W8gcXVlIGhhIHRyYWR1Y2lkbyBlbCBwYXF1ZXRlIG3hcyBncmFuZGU6IDE0MDYKIyBtZW5zYWplcyBlbiBlbCBjbGlzcCEpCiMKIyAJCQkJCQkgICAgICBDYXJsb3MgTGluYXJlcwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMKbXNnaWQgIiIKbXNnc3RyICIiCiJQcm9qZWN0LUlkLVZlcnNpb246IEdOVSBiaXNvbiAxLjg3NVxuIgoiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IGJ1Zy1iaXNvbkBnbnUub3JnXG4iCiJQT1QtQ3JlYXRpb24tRGF0ZTogMjAxMi0xMi0xMiAxNjowOSswMTAwXG4iCiJQTy1SZXZpc2lvbi1EYXRlOiAyMDAzLTAxLTAyIDEyOjQ3KzAxMDBcbiIKIkxhc3QtVHJhbnNsYXRvcjogTmljb2zhcyBHYXJj7WEtUGVkcmFqYXMgPG5nYXJjaWEtcGVkcmFqYXNAYWNtLm9yZz5cbiIKIkxhbmd1YWdlLVRlYW06IFNwYW5pc2ggPGVzQGxpLm9yZz5cbiIKIkxhbmd1YWdlOiBlc1xuIgoiTUlNRS1WZXJzaW9uOiAxLjBcbiIKIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xXG4iCiJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4LWJpdFxuIgoiUGx1cmFsLUZvcm1zOiBucGx1cmFscz0yOyBwbHVyYWw9KG4gIT0gMSk7XG4iCgojOiBkYXRhL2dsci5jOjg1NSBkYXRhL3lhY2MuYzo3NzYKbXNnaWQgInN5bnRheCBlcnJvcjogY2Fubm90IGJhY2sgdXAiCm1zZ3N0ciAiIgoKIzogZGF0YS9nbHIuYzoxNzI5Cm1zZ2lkICJzeW50YXggaXMgYW1iaWd1b3VzIgptc2dzdHIgIiIKCiM6IGRhdGEvZ2xyLmM6MjAxNCBkYXRhL2dsci5jOjIwOTQgZGF0YS9nbHIuYzoyMTM0IGRhdGEvZ2xyLmM6MjM5OQojOiBkYXRhL2xhbHIxLmNjOjk0NyBkYXRhL2xhbHIxLmNjOjk2NyBkYXRhL3lhY2MuYzoxMzUxIGRhdGEveWFjYy5jOjE4NTYKIzogZGF0YS95YWNjLmM6MTg2Mgptc2dpZCAic3ludGF4IGVycm9yIgptc2dzdHIgIiIKCiM6IGRhdGEvZ2xyLmM6MjA5NSBkYXRhL2xhbHIxLmNjOjk0OCBkYXRhL3lhY2MuYzoxMzUyCiMsIGMtZm9ybWF0Cm1zZ2lkICJzeW50YXggZXJyb3IsIHVuZXhwZWN0ZWQgJXMiCm1zZ3N0ciAiIgoKIzogZGF0YS9nbHIuYzoyMDk2IGRhdGEvbGFscjEuY2M6OTQ5IGRhdGEveWFjYy5jOjEzNTMKIywgYy1mb3JtYXQKbXNnaWQgInN5bnRheCBlcnJvciwgdW5leHBlY3RlZCAlcywgZXhwZWN0aW5nICVzIgptc2dzdHIgIiIKCiM6IGRhdGEvZ2xyLmM6MjA5NyBkYXRhL2xhbHIxLmNjOjk1MCBkYXRhL3lhY2MuYzoxMzU0CiMsIGMtZm9ybWF0Cm1zZ2lkICJzeW50YXggZXJyb3IsIHVuZXhwZWN0ZWQgJXMsIGV4cGVjdGluZyAlcyBvciAlcyIKbXNnc3RyICIiCgojOiBkYXRhL2dsci5jOjIwOTggZGF0YS9sYWxyMS5jYzo5NTEgZGF0YS95YWNjLmM6MTM1NQojLCBjLWZvcm1hdAptc2dpZCAic3ludGF4IGVycm9yLCB1bmV4cGVjdGVkICVzLCBleHBlY3RpbmcgJXMgb3IgJXMgb3IgJXMiCm1zZ3N0ciAiIgoKIzogZGF0YS9nbHIuYzoyMDk5IGRhdGEvbGFscjEuY2M6OTUyIGRhdGEveWFjYy5jOjEzNTYKIywgYy1mb3JtYXQKbXNnaWQgInN5bnRheCBlcnJvciwgdW5leHBlY3RlZCAlcywgZXhwZWN0aW5nICVzIG9yICVzIG9yICVzIG9yICVzIgptc2dzdHIgIiIKCiM6IGRhdGEvZ2xyLmM6MjQ1OSBkYXRhL3lhY2MuYzoxNDM2IGRhdGEveWFjYy5jOjE0MzggZGF0YS95YWNjLmM6MTYxNgojOiBkYXRhL3lhY2MuYzoyMDEzCm1zZ2lkICJtZW1vcnkgZXhoYXVzdGVkIgptc2dzdHIgIm1lbW9yaWEgYWdvdGFkYSIK