f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAABAEQAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIGdpZjsKcGtncGF0aCBpbWFnZS9naWY7CnByaW9yaXR5IDg7CmltcG9ydCBidWZpbyBidWZpbyAiYnVmaW8iOwppbXBvcnQgbHp3IGNvbXByZXNzL2x6dyAiY29tcHJlc3MvbHp3IjsKaW1wb3J0IGVycm9ycyBlcnJvcnMgImVycm9ycyI7CmltcG9ydCBmbXQgZm10ICJmbXQiOwppbXBvcnQgaW1hZ2UgaW1hZ2UgImltYWdlIjsKaW1wb3J0IGNvbG9yIGltYWdlL2NvbG9yICJpbWFnZS9jb2xvciI7CmltcG9ydCBwYWxldHRlIGltYWdlL2NvbG9yL3BhbGV0dGUgImltYWdlL2NvbG9yL3BhbGV0dGUiOwppbXBvcnQgZHJhdyBpbWFnZS9kcmF3ICJpbWFnZS9kcmF3IjsKaW1wb3J0IGlvIGlvICJpbyI7CmluaXQgZ2lmIGltYWdlX2dpZi4uaW1wb3J0IDggY29sb3IgaW1hZ2VfY29sb3IuLmltcG9ydCAxIG1hdGggbWF0aC4uaW1wb3J0IDEgcnVudGltZSBydW50aW1lLi5pbXBvcnQgMSB1bmljb2RlIHVuaWNvZGUuLmltcG9ydCAxIHBhbGV0dGUgaW1hZ2VfY29sb3JfcGFsZXR0ZS4uaW1wb3J0IDIgc3RyY29udiBzdHJjb252Li5pbXBvcnQgMiBzeW5jIHN5bmMuLmltcG9ydCAyIGlvIGlvLi5pbXBvcnQgMyByZWZsZWN0IHJlZmxlY3QuLmltcG9ydCAzIHN5c2NhbGwgc3lzY2FsbC4uaW1wb3J0IDMgYnl0ZXMgYnl0ZXMuLmltcG9ydCA0IHRpbWUgdGltZS4uaW1wb3J0IDQgYnVmaW8gYnVmaW8uLmltcG9ydCA1IG9zIG9zLi5pbXBvcnQgNSBmbXQgZm10Li5pbXBvcnQgNiBpbWFnZSBpbWFnZS4uaW1wb3J0IDYgZHJhdyBpbWFnZV9kcmF3Li5pbXBvcnQgNyBsencgY29tcHJlc3NfbHp3Li5pbXBvcnQgNzsKZnVuYyBEZWNvZGUgKHIgPHR5cGUgMSAiaW8uUmVhZGVyIiA8dHlwZSAyIGludGVyZmFjZSB7IFJlYWQgKHAgPHR5cGUgMyBbXSA8dHlwZSAtMjA+PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOyB9Pj4pICg/IDx0eXBlIDQgImltYWdlLkltYWdlIiA8dHlwZSA1IGludGVyZmFjZSB7IENvbG9yTW9kZWwgKCkgPHR5cGUgNiAiaW1hZ2UvY29sb3IuTW9kZWwiIDx0eXBlIDcgaW50ZXJmYWNlIHsgQ29udmVydCAoYyA8dHlwZSA4ICJpbWFnZS9jb2xvci5Db2xvciIgPHR5cGUgOSBpbnRlcmZhY2UgeyBSR0JBICgpIChyIDx0eXBlIC03PiwgZyA8dHlwZSAtNz4sIGIgPHR5cGUgLTc+LCBhIDx0eXBlIC03Pik7IH0+PikgPHR5cGUgOD47IH0+PjsgQm91bmRzICgpIDx0eXBlIDEwICJpbWFnZS5SZWN0YW5nbGUiIDx0eXBlIDExIHN0cnVjdCB7IE1pbiA8dHlwZSAxMiAiaW1hZ2UuUG9pbnQiIDx0eXBlIDEzIHN0cnVjdCB7IFggPHR5cGUgLTExPjsgWSA8dHlwZSAtMTE+OyB9PgogZnVuYyAocCA8dHlwZSAxMj4pIE1vZCAociA8dHlwZSAxMD4pIDx0eXBlIDEyPjsKIGZ1bmMgKHAgPHR5cGUgMTI+KSBTdWIgKHEgPHR5cGUgMTI+KSA8dHlwZSAxMj47CiBmdW5jIChwIDx0eXBlIDEyPikgRGl2IChrIDx0eXBlIC0xMT4pIDx0eXBlIDEyPjsKIGZ1bmMgKHAgPHR5cGUgMTI+KSBFcSAocSA8dHlwZSAxMj4pIDx0eXBlIC0xNT47CiBmdW5jIChwIDx0eXBlIDEyPikgTXVsIChrIDx0eXBlIC0xMT4pIDx0eXBlIDEyPjsKIGZ1bmMgKHAgPHR5cGUgMTI+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKHAgPHR5cGUgMTI+KSBJbiAociA8dHlwZSAxMD4pIDx0eXBlIC0xNT47CiBmdW5jIChwIDx0eXBlIDEyPikgQWRkIChxIDx0eXBlIDEyPikgPHR5cGUgMTI+Owo+OyBNYXggPHR5cGUgMTI+OyB9PgogZnVuYyAociA8dHlwZSAxMD4pIEluc2V0IChuIDx0eXBlIC0xMT4pIDx0eXBlIDEwPjsKIGZ1bmMgKHIgPHR5cGUgMTA+KSBPdmVybGFwcyAocyA8dHlwZSAxMD4pIDx0eXBlIC0xNT47CiBmdW5jIChyIDx0eXBlIDEwPikgRHkgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKHIgPHR5cGUgMTA+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKHIgPHR5cGUgMTA+KSBBZGQgKHAgPHR5cGUgMTI+KSA8dHlwZSAxMD47CiBmdW5jIChyIDx0eXBlIDEwPikgQ2Fub24gKCkgPHR5cGUgMTA+OwogZnVuYyAociA8dHlwZSAxMD4pIEVxIChzIDx0eXBlIDEwPikgPHR5cGUgLTE1PjsKIGZ1bmMgKHIgPHR5cGUgMTA+KSBTdWIgKHAgPHR5cGUgMTI+KSA8dHlwZSAxMD47CiBmdW5jIChyIDx0eXBlIDEwPikgSW50ZXJzZWN0IChzIDx0eXBlIDEwPikgPHR5cGUgMTA+OwogZnVuYyAociA8dHlwZSAxMD4pIFNpemUgKCkgPHR5cGUgMTI+OwogZnVuYyAociA8dHlwZSAxMD4pIEluIChzIDx0eXBlIDEwPikgPHR5cGUgLTE1PjsKIGZ1bmMgKHIgPHR5cGUgMTA+KSBEeCAoKSA8dHlwZSAtMTE+OwogZnVuYyAociA8dHlwZSAxMD4pIEVtcHR5ICgpIDx0eXBlIC0xNT47CiBmdW5jIChyIDx0eXBlIDEwPikgVW5pb24gKHMgPHR5cGUgMTA+KSA8dHlwZSAxMD47Cj47IEF0ICh4IDx0eXBlIC0xMT4sIHkgPHR5cGUgLTExPikgPHR5cGUgOD47IH0+PiwgPyA8dHlwZSAtMTk+KTsKZnVuYyBEZWNvZGVBbGwgKHIgPHR5cGUgMT4pICg/IDx0eXBlIDE0ICo8dHlwZSAxNSAiR0lGIiA8dHlwZSAxNiBzdHJ1Y3QgeyBJbWFnZSA8dHlwZSAxNyBbXSA8dHlwZSAxOCAqPHR5cGUgMTkgImltYWdlLlBhbGV0dGVkIiA8dHlwZSAyMCBzdHJ1Y3QgeyBQaXggPHR5cGUgMjEgW10gPHR5cGUgLTU+PjsgU3RyaWRlIDx0eXBlIC0xMT47IFJlY3QgPHR5cGUgMTA+OyBQYWxldHRlIDx0eXBlIDIyICJpbWFnZS9jb2xvci5QYWxldHRlIiA8dHlwZSAyMyBbXSA8dHlwZSA4Pj4KIGZ1bmMgKHAgPHR5cGUgMjI+KSBJbmRleCAoYyA8dHlwZSA4PikgPHR5cGUgLTExPjsKIGZ1bmMgKHAgPHR5cGUgMjI+KSBDb252ZXJ0IChjIDx0eXBlIDg+KSA8dHlwZSA4PjsKPjsgfT4KIGZ1bmMgKHAgPHR5cGUgMjQgKjx0eXBlIDE5Pj4pIE9wYXF1ZSAoKSA8dHlwZSAtMTU+OwogZnVuYyAocCA8dHlwZSAyND4pIENvbG9yTW9kZWwgKCkgPHR5cGUgNj47CiBmdW5jIChwIDx0eXBlIDI0PikgQXQgKHggPHR5cGUgLTExPiwgeSA8dHlwZSAtMTE+KSA8dHlwZSA4PjsKIGZ1bmMgKHAgPHR5cGUgMjQ+KSBTdWJJbWFnZSAociA8dHlwZSAxMD4pIDx0eXBlIDQ+OwogZnVuYyAocCA8dHlwZSAyND4pIFNldCAoeCA8dHlwZSAtMTE+LCB5IDx0eXBlIC0xMT4sIGMgPHR5cGUgOD4pOwogZnVuYyAocCA8dHlwZSAyND4pIENvbG9ySW5kZXhBdCAoeCA8dHlwZSAtMTE+LCB5IDx0eXBlIC0xMT4pIDx0eXBlIC01PjsKIGZ1bmMgKHAgPHR5cGUgMjQ+KSBQaXhPZmZzZXQgKHggPHR5cGUgLTExPiwgeSA8dHlwZSAtMTE+KSA8dHlwZSAtMTE+OwogZnVuYyAocCA8dHlwZSAyND4pIFNldENvbG9ySW5kZXggKHggPHR5cGUgLTExPiwgeSA8dHlwZSAtMTE+LCBpbmRleCA8dHlwZSAtNT4pOwogZnVuYyAocCA8dHlwZSAyND4pIEJvdW5kcyAoKSA8dHlwZSAxMD47Cj4+PjsgRGVsYXkgPHR5cGUgMjUgW10gPHR5cGUgLTExPj47IExvb3BDb3VudCA8dHlwZSAtMTE+OyB9Pj4+LCA/IDx0eXBlIC0xOT4pOwpmdW5jIERlY29kZUNvbmZpZyAociA8dHlwZSAxPikgKD8gPHR5cGUgMjYgImltYWdlLkNvbmZpZyIgPHR5cGUgMjcgc3RydWN0IHsgQ29sb3JNb2RlbCA8dHlwZSA2PjsgV2lkdGggPHR5cGUgLTExPjsgSGVpZ2h0IDx0eXBlIC0xMT47IH0+PiwgPyA8dHlwZSAtMTk+KTsKZnVuYyBFbmNvZGUgKHcgPHR5cGUgMjggImlvLldyaXRlciIgPHR5cGUgMjkgaW50ZXJmYWNlIHsgV3JpdGUgKHAgPHR5cGUgMzAgW10gPHR5cGUgLTIwPj4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsgfT4+LCBtIDx0eXBlIDQ+LCBvIDx0eXBlIDMxICo8dHlwZSAzMiAiT3B0aW9ucyIgPHR5cGUgMzMgc3RydWN0IHsgTnVtQ29sb3JzIDx0eXBlIC0xMT47IFF1YW50aXplciA8dHlwZSAzNCAiaW1hZ2UvZHJhdy5RdWFudGl6ZXIiIDx0eXBlIDM1IGludGVyZmFjZSB7IFF1YW50aXplIChwIDx0eXBlIDIyPiwgbSA8dHlwZSA0PikgPHR5cGUgMjI+OyB9Pj47IERyYXdlciA8dHlwZSAzNiAiaW1hZ2UvZHJhdy5EcmF3ZXIiIDx0eXBlIDM3IGludGVyZmFjZSB7IERyYXcgKGRzdCA8dHlwZSAzOCAiaW1hZ2UvZHJhdy5JbWFnZSIgPHR5cGUgMzkgaW50ZXJmYWNlIHsgPyA8dHlwZSA0PjsgU2V0ICh4IDx0eXBlIC0xMT4sIHkgPHR5cGUgLTExPiwgYyA8dHlwZSA4Pik7IH0+PiwgciA8dHlwZSAxMD4sIHNyYyA8dHlwZSA0Piwgc3AgPHR5cGUgMTI+KTsgfT4+OyB9Pj4+KSA8dHlwZSAtMTk+OwpmdW5jIEVuY29kZUFsbCAodyA8dHlwZSAyOD4sIGcgPHR5cGUgMTQ+KSA8dHlwZSAtMTk+Owp0eXBlIDx0eXBlIDE1PjsKdHlwZSA8dHlwZSAzMj47CmNoZWNrc3VtIEQ4NjE0NEE3NTAzRDEyNTcxMTk5MDgxMTA5MEJBOTYyNTQ2NTZEMkM7CgAuc3ltdGFiAC5zdHJ0YWIALnNoc3RydGFiAC5nb19leHBvcnQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsAAAABAAAAAAAAAAAAAAA0AAAAwhAAAAAAAAAAAAAAAQAAAAAAAAARAAAAAwAAAAAAAAAAAAAA9hAAACYAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAABwRAAAgAAAABAAAAAIAAAAEAAAAEAAAAAkAAAADAAAAAAAAAAAAAAA8EQAAAQAAAAAAAAAAAAAAAQAAAAAAAAA=