I2lmbmRlZiBfX1VBUlRfSF9MT0FERUQKI2RlZmluZSBfX1VBUlRfSF9MT0FERUQKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgogICAgICAgQ29weXJpZ2h0IKkgMTk5MywgMTk5NCBEaWdpdGFsIEVxdWlwbWVudCBDb3Jwb3JhdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICBNYXluYXJkLCBNYXNzYWNodXNldHRzLgoKICAgICAgICAgICAgICAgICAgICAgICAgQWxsIFJpZ2h0cyBSZXNlcnZlZAoKUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBhbmQgaXRzIApkb2N1bWVudGF0aW9uIGZvciBhbnkgcHVycG9zZSBhbmQgd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkICAKdGhhdCB0aGUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4gYWxsIGNvcGllcyAgCm9mIHNvZnR3YXJlIGFuZCBzdXBwb3J0aW5nIGRvY3VtZW50YXRpb24sIGFuZCB0aGF0IHRoZSBuYW1lIG9mIERpZ2l0YWwgbm90ICAKYmUgdXNlZCBpbiBhZHZlcnRpc2luZyBvciBwdWJsaWNpdHkgcGVydGFpbmluZyB0byBkaXN0cmlidXRpb24gb2YgdGhlIHNvZnR3YXJlIAp3aXRob3V0IHNwZWNpZmljLCB3cml0dGVuIHByaW9yIHBlcm1pc3Npb24uIERpZ2l0YWwgZ3JhbnRzIHRoaXMgcGVybWlzc2lvbiAKcHJvdmlkZWQgdGhhdCB5b3UgcHJvbWluZW50bHkgbWFyaywgYXMgbm90IHBhcnQgb2YgdGhlIG9yaWdpbmFsLCBhbnkgCm1vZGlmaWNhdGlvbnMgbWFkZSB0byB0aGlzIHNvZnR3YXJlIG9yIGRvY3VtZW50YXRpb24uCgpEaWdpdGFsIEVxdWlwbWVudCBDb3Jwb3JhdGlvbiBkaXNjbGFpbXMgYWxsIHdhcnJhbnRpZXMgYW5kL29yIGd1YXJhbnRlZXMgIAp3aXRoIHJlZ2FyZCB0byB0aGlzIHNvZnR3YXJlLCBpbmNsdWRpbmcgYWxsIGltcGxpZWQgd2FycmFudGllcyBvZiBmaXRuZXNzIGZvciAKYSBwYXJ0aWN1bGFyIHB1cnBvc2UgYW5kIG1lcmNoYW50YWJpbGl0eSwgYW5kIG1ha2VzIG5vIHJlcHJlc2VudGF0aW9ucyAKcmVnYXJkaW5nIHRoZSB1c2Ugb2YsIG9yIHRoZSByZXN1bHRzIG9mIHRoZSB1c2Ugb2YsIHRoZSBzb2Z0d2FyZSBhbmQgCmRvY3VtZW50YXRpb24gaW4gdGVybXMgb2YgY29ycmVjdG5lc3MsIGFjY3VyYWN5LCByZWxpYWJpbGl0eSwgY3VycmVudG5lc3Mgb3IKb3RoZXJ3aXNlOyBhbmQgeW91IHJlbHkgb24gdGhlIHNvZnR3YXJlLCBkb2N1bWVudGF0aW9uIGFuZCByZXN1bHRzIHNvbGVseSBhdCAKeW91ciBvd24gcmlzay4gCgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgojZGVmaW5lIGNvbTFSYnIJMHgzZjgKI2RlZmluZSBjb20xVGhyCTB4M2Y4CiNkZWZpbmUgY29tMUllcgkweDNmOQojZGVmaW5lIGNvbTFJaXIJMHgzZmEKI2RlZmluZSBjb20xTGNyCTB4M2ZiCiNkZWZpbmUgY29tMU1jcgkweDNmYwojZGVmaW5lIGNvbTFMc3IJMHgzZmQKI2RlZmluZSBjb20xTXNyCTB4M2ZlCiNkZWZpbmUgY29tMVNjcgkweDNmZgojZGVmaW5lIGNvbTFEbGwJMHgzZjgKI2RlZmluZSBjb20xRGxtCTB4M2Y5CgojZGVmaW5lIGNvbTJSYnIJMHgyZjgKI2RlZmluZSBjb20yVGhyCTB4MmY4CiNkZWZpbmUgY29tMkllcgkweDJmOQojZGVmaW5lIGNvbTJJaXIJMHgyZmEKI2RlZmluZSBjb20yTGNyCTB4MmZiCiNkZWZpbmUgY29tMk1jcgkweDJmYwojZGVmaW5lIGNvbTJMc3IJMHgyZmQKI2RlZmluZSBjb20yTXNyCTB4MmZlCiNkZWZpbmUgY29tMlNjcgkweDJmZgojZGVmaW5lIGNvbTJEbGwJMHgyZjgKI2RlZmluZSBjb20yRGxtCTB4MmY5CgojZGVmaW5lIENPTTEJKGNvbTFSYnIgLSBjb20yUmJyKQojZGVmaW5lIENPTTIJMAoKZXh0ZXJuIGludCB1YXJ0X2NoYXJhdihpbnQgcG9ydCk7CmV4dGVybiBpbnQgdWFydF9nZXRjaGFyKGludCBwb3J0KTsKZXh0ZXJuIHZvaWQgdWFydF9wdXRjaGFyKGludCBwb3J0LCBjaGFyIGMpOwpleHRlcm4gdm9pZCB1YXJ0X3B1dHMoaW50IHBvcnQsIGNvbnN0IGNoYXIgKnMpOwpleHRlcm4gdm9pZCB1YXJ0X2luaXQodm9pZCk7CgojZW5kaWYJCQkJLyogX19VQVJUX0hfTE9BREVEICovCg==