f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAAB8BwAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIGJhc2U2NDsKcGtncGF0aCBlbmNvZGluZy9iYXNlNjQ7CnByaW9yaXR5IDU7CmltcG9ydCBieXRlcyBieXRlcyAiYnl0ZXMiOwppbXBvcnQgaW8gaW8gImlvIjsKaW1wb3J0IHN0cmNvbnYgc3RyY29udiAic3RyY29udiI7CmltcG9ydCBzdHJpbmdzIHN0cmluZ3MgInN0cmluZ3MiOwppbml0IGJhc2U2NCBlbmNvZGluZ19iYXNlNjQuLmltcG9ydCA1IG1hdGggbWF0aC4uaW1wb3J0IDEgcnVudGltZSBydW50aW1lLi5pbXBvcnQgMSB1bmljb2RlIHVuaWNvZGUuLmltcG9ydCAxIHN0cmNvbnYgc3RyY29udi4uaW1wb3J0IDIgc3luYyBzeW5jLi5pbXBvcnQgMiBpbyBpby4uaW1wb3J0IDMgYnl0ZXMgYnl0ZXMuLmltcG9ydCA0Owp0eXBlIDx0eXBlIDEgIkNvcnJ1cHRJbnB1dEVycm9yIiA8dHlwZSAtND4KIGZ1bmMgKGUgPHR5cGUgMT4pIEVycm9yICgpIDx0eXBlIC0xNj47Cj47CnR5cGUgPHR5cGUgMiAiRW5jb2RpbmciIDx0eXBlIDMgc3RydWN0IHsgLmVuY29kaW5nL2Jhc2U2NC5lbmNvZGUgPHR5cGUgLTE2PjsgLmVuY29kaW5nL2Jhc2U2NC5kZWNvZGVNYXAgPHR5cGUgNCBbMjU2IF0gPHR5cGUgLTIwPj47IH0+CiBmdW5jIChlbmMgPHR5cGUgNSAqPHR5cGUgMj4+KSBFbmNvZGUgKGRzdCA8dHlwZSA2IFtdIDx0eXBlIC0yMD4+LCBzcmMgPHR5cGUgNj4pOwogZnVuYyAoZW5jIDx0eXBlIDU+KSBFbmNvZGVUb1N0cmluZyAoc3JjIDx0eXBlIDcgW10gPHR5cGUgLTIwPj4pIDx0eXBlIC0xNj47CiBmdW5jIChlbmMgPHR5cGUgNT4pIEVuY29kZWRMZW4gKG4gPHR5cGUgLTExPikgPHR5cGUgLTExPjsKIGZ1bmMgKGVuYyA8dHlwZSA1PikgLmVuY29kaW5nL2Jhc2U2NC5kZWNvZGUgKGRzdCA8dHlwZSA4IFtdIDx0eXBlIC0yMD4+LCBzcmMgPHR5cGUgOD4pIChuIDx0eXBlIC0xMT4sIGVuZCA8dHlwZSAtMTU+LCBlcnIgPHR5cGUgLTE5Pik7CiBmdW5jIChlbmMgPHR5cGUgNT4pIERlY29kZSAoZHN0IDx0eXBlIDkgW10gPHR5cGUgLTIwPj4sIHNyYyA8dHlwZSA5PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAoZW5jIDx0eXBlIDU+KSBEZWNvZGVTdHJpbmcgKHMgPHR5cGUgLTE2PikgKD8gPHR5cGUgMTAgW10gPHR5cGUgLTIwPj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jIChlbmMgPHR5cGUgNT4pIERlY29kZWRMZW4gKG4gPHR5cGUgLTExPikgPHR5cGUgLTExPjsKPjsKZnVuYyBOZXdEZWNvZGVyIChlbmMgPHR5cGUgNT4sIHIgPHR5cGUgMTEgImlvLlJlYWRlciIgPHR5cGUgMTIgaW50ZXJmYWNlIHsgUmVhZCAocCA8dHlwZSAxMyBbXSA8dHlwZSAtMjA+PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOyB9Pj4pIDx0eXBlIDExPjsKZnVuYyBOZXdFbmNvZGVyIChlbmMgPHR5cGUgNT4sIHcgPHR5cGUgMTQgImlvLldyaXRlciIgPHR5cGUgMTUgaW50ZXJmYWNlIHsgV3JpdGUgKHAgPHR5cGUgMTYgW10gPHR5cGUgLTIwPj4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsgfT4+KSA8dHlwZSAxNyAiaW8uV3JpdGVDbG9zZXIiIDx0eXBlIDE4IGludGVyZmFjZSB7ID8gPHR5cGUgMTQ+OyA/IDx0eXBlIDE5ICJpby5DbG9zZXIiIDx0eXBlIDIwIGludGVyZmFjZSB7IENsb3NlICgpIDx0eXBlIC0xOT47IH0+PjsgfT4+OwpmdW5jIE5ld0VuY29kaW5nIChlbmNvZGVyIDx0eXBlIC0xNj4pIDx0eXBlIDU+Owp2YXIgU3RkRW5jb2RpbmcgPHR5cGUgNT47CnZhciBVUkxFbmNvZGluZyA8dHlwZSA1PjsKY2hlY2tzdW0gMEJBRTBGRDFENUU5RkM3NUYzNTYyOUFDMjFFNkY3MkVFMDQ2MzJGRDsKAC5zeW10YWIALnN0cnRhYgAuc2hzdHJ0YWIALmdvX2V4cG9ydAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAAAAEAAAAAAAAAAAAAADQAAAD7BgAAAAAAAAAAAAABAAAAAAAAABEAAAADAAAAAAAAAAAAAAAvBwAAJgAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAgAAAAAAAAAAAAAAWAcAACAAAAAEAAAAAgAAAAQAAAAQAAAACQAAAAMAAAAAAAAAAAAAAHgHAAABAAAAAAAAAAAAAAABAAAAAAAAAA==