IyEvdXNyL2Jpbi9lbnYgYmFzaAoKIyBCdWlsZCBhIGJyYW5jaGVzL3JlbGVhc2Ugc25hcHNob3QgZm9yIFBvc2l4LCB1c2luZyBMRiBsaW5lIHRlcm1pbmF0aW9uCgojIKkgQ29weXJpZ2h0IDIwMDggQmVtYW4gRGF3ZXMKIyBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5zZSwgVmVyc2lvbiAxLjAuCiMgU2VlIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4dAoKZWNobyAiQnVpbGQgYSBicmFuY2hlcy9yZWxlYXNlIHNuYXBzaG90IGZvciBQT1NJWCwgdXNpbmcgTEYgbGluZSB0ZXJtaW5hdGlvbi4uLiIKCmVjaG8gIlJlbW92aW5nIG9sZCBmaWxlcy4uLiIKcm0gLXIgLWYgcG9zaXgKcm0gLXIgLWYgc3ZuX2luZm8KCmVjaG8gIkV4cG9ydGluZyBmaWxlcyBmcm9tIHN1YnZlcnNpb24uLi4iCiMgbGVhdmUgYW4gYXVkaXQgdHJhaWwsIHdoaWNoIGlzIHVzZWQgYnkgaW5zcGVjdCB0byBkZXRlcm1pbmUgcmV2aXNpb24gbnVtYmVyCiMgICB1c2UgLS1ub24tcmVjdXJzaXZlIHJhdGhlciB0aGFuIC0tZGVwdGg9ZmlsZXMgdW50aWwgdGhlIGxpbnV4IGRpc3Ryb3MgY2F0Y2ggdXAKc3ZuIGNvIC0tbm9uLXJlY3Vyc2l2ZSBodHRwOi8vc3ZuLmJvb3N0Lm9yZy9zdm4vYm9vc3QvYnJhbmNoZXMvcmVsZWFzZSBzdm5faW5mbwpzdm4gZXhwb3J0IC0tbm9uLWludGVyYWN0aXZlIC0tbmF0aXZlLWVvbCBMRiBodHRwOi8vc3ZuLmJvb3N0Lm9yZy9zdm4vYm9vc3QvYnJhbmNoZXMvcmVsZWFzZSBwb3NpeAoKI2VjaG8gIkJ1aWxkaW5nIGJqYW0uLi4iCiMgZmFpbHVyZSB0byB1c2UgYW4gdXAtdG8tZGF0ZSBjb3B5IG9mIGJqYW0gaGFzIGNhdXNlZCBtdWNoIHdhc3RlZCBlZmZvcnQuCiNwdXNoZCBwb3NpeC90b29scy9idWlsZC92Mi9lbmdpbmUvc3JjCiMuL2J1aWxkLnNoIGdjYwojcG9wZAojCiNlY2hvICJCdWlsZGluZyBkb2NzLi4uIgojcHVzaGQgcG9zaXgvZG9jCiMuLi90b29scy9idWlsZC92Mi9lbmdpbmUvc3JjL2Jpbi5jeWd3aW54ODYvYmphbSAtLXRvb2xzZXQ9Z2NjICY+Li4vLi4vcG9zaXgtYmphbS5sb2cKI3BvcGQKCmVjaG8gIkNsZWFuaW5nIHVwIGFuZCByZW5hbWluZy4uLiIKI3JtIC1yIHBvc2l4L2Jpbi52MgpTTkFQU0hPVF9EQVRFPWBldmFsIGRhdGUgKyVZLSVtLSVkYAplY2hvIFNOQVBTSE9UX0RBVEUgaXMgJFNOQVBTSE9UX0RBVEUKbXYgcG9zaXggYm9vc3QtcG9zaXgtJFNOQVBTSE9UX0RBVEUKcm0gLWYgcG9zaXgudGFyLmd6CnJtIC1mIHBvc2l4LnRhci5iejIKCmVjaG8gIkJ1aWxkaW5nIC5neiBmaWxlLi4uIgp0YXIgY2Z6IHBvc2l4LnRhci5neiBib29zdC1wb3NpeC0kU05BUFNIT1RfREFURQplY2hvICJCdWlsZGluZyAuYnoyIGZpbGUuLi4iCmd1bnppcCAtYyBwb3NpeC50YXIuZ3ogfCBiemlwMiA+cG9zaXgudGFyLmJ6MgptdiBib29zdC1wb3NpeC0kU05BUFNIT1RfREFURSBwb3NpeAoKZWNobyAiQ3JlYXRpbmcgZnRwIHNjcmlwdC4uLiIKZWNobyAiZGlyIiA+cG9zaXguZnRwCmVjaG8gImJpbmFyeSIgPj5wb3NpeC5mdHAKCiNlY2hvICJwdXQgcG9zaXgudGFyLmd6IiA+PnBvc2l4LmZ0cAojZWNobyAibWRlbGV0ZSBib29zdC1wb3NpeCouZ3oiID4+cG9zaXguZnRwCiNlY2hvICJyZW5hbWUgcG9zaXgudGFyLmd6IGJvb3N0LXBvc2l4LSRTTkFQU0hPVF9EQVRFLnRhci5neiIgPj5wb3NpeC5mdHAKCmVjaG8gInB1dCBwb3NpeC50YXIuYnoyIiA+PnBvc2l4LmZ0cAplY2hvICJtZGVsZXRlIGJvb3N0LXBvc2l4Ki5iejIiID4+cG9zaXguZnRwCmVjaG8gInJlbmFtZSBwb3NpeC50YXIuYnoyIGJvb3N0LXBvc2l4LSRTTkFQU0hPVF9EQVRFLnRhci5iejIiID4+cG9zaXguZnRwCgplY2hvICJkaXIiID4+cG9zaXguZnRwCmVjaG8gImJ5ZSIgPj5wb3NpeC5mdHAKCmVjaG8gIlJ1bm5pbmcgZnRwIHNjcmlwdC4uLiIKIyB1c2UgY3lnd2luIGZ0cCByYXRoZXIgdGhhbiBXaW5kb3dzIGZ0cAovdXNyL2Jpbi9mdHAgLXYgLWkgYm9vc3QuY293aWMuZGUgPHBvc2l4LmZ0cAoKZWNobyBQT1NJWCBzbmFwc2hvdCBjb21wbGV0ZSEK