f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAADcBgAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIGxpc3Q7CnBrZ3BhdGggY29udGFpbmVyL2xpc3Q7CnByaW9yaXR5IDE7CnR5cGUgPHR5cGUgMSAiRWxlbWVudCIgPHR5cGUgMiBzdHJ1Y3QgeyAuY29udGFpbmVyL2xpc3QubmV4dCA8dHlwZSAzICo8dHlwZSAxPj47IC5jb250YWluZXIvbGlzdC5wcmV2IDx0eXBlIDM+OyAuY29udGFpbmVyL2xpc3QubGlzdCA8dHlwZSA0ICo8dHlwZSA1ICJMaXN0IiA8dHlwZSA2IHN0cnVjdCB7IC5jb250YWluZXIvbGlzdC5yb290IDx0eXBlIDE+OyAuY29udGFpbmVyL2xpc3QubGVuIDx0eXBlIC0xMT47IH0+CiBmdW5jIChsIDx0eXBlIDcgKjx0eXBlIDU+PikgSW5pdCAoKSA8dHlwZSA3PjsKIGZ1bmMgKGwgPHR5cGUgNz4pIExlbiAoKSA8dHlwZSAtMTE+OwogZnVuYyAobCA8dHlwZSA3PikgRnJvbnQgKCkgPHR5cGUgOCAqPHR5cGUgMT4+OwogZnVuYyAobCA8dHlwZSA3PikgQmFjayAoKSA8dHlwZSA4PjsKIGZ1bmMgKGwgPHR5cGUgNz4pIC5jb250YWluZXIvbGlzdC5sYXp5SW5pdCAoKTsKIGZ1bmMgKGwgPHR5cGUgNz4pIC5jb250YWluZXIvbGlzdC5pbnNlcnQgKGUgPHR5cGUgOD4sIGF0IDx0eXBlIDg+KSA8dHlwZSA4PjsKIGZ1bmMgKGwgPHR5cGUgNz4pIC5jb250YWluZXIvbGlzdC5pbnNlcnRWYWx1ZSAodiA8dHlwZSA5IGludGVyZmFjZSB7IH0+LCBhdCA8dHlwZSA4PikgPHR5cGUgOD47CiBmdW5jIChsIDx0eXBlIDc+KSAuY29udGFpbmVyL2xpc3QucmVtb3ZlIChlIDx0eXBlIDg+KSA8dHlwZSA4PjsKIGZ1bmMgKGwgPHR5cGUgNz4pIFJlbW92ZSAoZSA8dHlwZSA4PikgPHR5cGUgMTAgaW50ZXJmYWNlIHsgfT47CiBmdW5jIChsIDx0eXBlIDc+KSBQdXNoRnJvbnQgKHYgPHR5cGUgMTEgaW50ZXJmYWNlIHsgfT4pIDx0eXBlIDg+OwogZnVuYyAobCA8dHlwZSA3PikgUHVzaEJhY2sgKHYgPHR5cGUgMTIgaW50ZXJmYWNlIHsgfT4pIDx0eXBlIDg+OwogZnVuYyAobCA8dHlwZSA3PikgSW5zZXJ0QmVmb3JlICh2IDx0eXBlIDEzIGludGVyZmFjZSB7IH0+LCBtYXJrIDx0eXBlIDg+KSA8dHlwZSA4PjsKIGZ1bmMgKGwgPHR5cGUgNz4pIEluc2VydEFmdGVyICh2IDx0eXBlIDE0IGludGVyZmFjZSB7IH0+LCBtYXJrIDx0eXBlIDg+KSA8dHlwZSA4PjsKIGZ1bmMgKGwgPHR5cGUgNz4pIE1vdmVUb0Zyb250IChlIDx0eXBlIDg+KTsKIGZ1bmMgKGwgPHR5cGUgNz4pIE1vdmVUb0JhY2sgKGUgPHR5cGUgOD4pOwogZnVuYyAobCA8dHlwZSA3PikgTW92ZUJlZm9yZSAoZSA8dHlwZSA4PiwgbWFyayA8dHlwZSA4Pik7CiBmdW5jIChsIDx0eXBlIDc+KSBNb3ZlQWZ0ZXIgKGUgPHR5cGUgOD4sIG1hcmsgPHR5cGUgOD4pOwogZnVuYyAobCA8dHlwZSA3PikgUHVzaEJhY2tMaXN0IChvdGhlciA8dHlwZSA3Pik7CiBmdW5jIChsIDx0eXBlIDc+KSBQdXNoRnJvbnRMaXN0IChvdGhlciA8dHlwZSA3Pik7Cj4+OyBWYWx1ZSA8dHlwZSAxNSBpbnRlcmZhY2UgeyB9PjsgfT4KIGZ1bmMgKGUgPHR5cGUgOD4pIE5leHQgKCkgPHR5cGUgOD47CiBmdW5jIChlIDx0eXBlIDg+KSBQcmV2ICgpIDx0eXBlIDg+Owo+Owp0eXBlIDx0eXBlIDU+OwpmdW5jIE5ldyAoKSA8dHlwZSA3PjsKY2hlY2tzdW0gOEYyQkY1RDFENUU2QkMyQkRFMzMzQzQyRDcxQTk4NTE3RkFDQTJFNzsKAC5zeW10YWIALnN0cnRhYgAuc2hzdHJ0YWIALmdvX2V4cG9ydAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbAAAAAQAAAAAAAAAAAAAANAAAAFwGAAAAAAAAAAAAAAEAAAAAAAAAEQAAAAMAAAAAAAAAAAAAAJAGAAAmAAAAAAAAAAAAAAABAAAAAAAAAAEAAAACAAAAAAAAAAAAAAC4BgAAIAAAAAQAAAACAAAABAAAABAAAAAJAAAAAwAAAAAAAAAAAAAA2AYAAAEAAAAAAAAAAAAAAAEAAAAAAAAA