f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAABgIgAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIHByb3h5Owpwa2dwYXRoIGV4cC9wcm94eTsKcHJpb3JpdHkgNzsKaW1wb3J0IGVycm9ycyBlcnJvcnMgImVycm9ycyI7CmltcG9ydCBpbyBpbyAiaW8iOwppbXBvcnQgbmV0IG5ldCAibmV0IjsKaW1wb3J0IHVybCBuZXQvdXJsICJuZXQvdXJsIjsKaW1wb3J0IG9zIG9zICJvcyI7CmltcG9ydCBzdHJjb252IHN0cmNvbnYgInN0cmNvbnYiOwppbXBvcnQgc3RyaW5ncyBzdHJpbmdzICJzdHJpbmdzIjsKaW5pdCBwcm94eSBleHBfcHJveHkuLmltcG9ydCA3IG1hdGggbWF0aC4uaW1wb3J0IDEgcnVudGltZSBydW50aW1lLi5pbXBvcnQgMSB1bmljb2RlIHVuaWNvZGUuLmltcG9ydCAxIHN0cmNvbnYgc3RyY29udi4uaW1wb3J0IDIgc3luYyBzeW5jLi5pbXBvcnQgMiBpbyBpby4uaW1wb3J0IDMgcmFuZCBtYXRoX3JhbmQuLmltcG9ydCAzIHN5c2NhbGwgc3lzY2FsbC4uaW1wb3J0IDMgYnl0ZXMgYnl0ZXMuLmltcG9ydCA0IHRpbWUgdGltZS4uaW1wb3J0IDQgb3Mgb3MuLmltcG9ydCA1IG5ldCBuZXQuLmltcG9ydCA2Owp0eXBlIDx0eXBlIDEgIkF1dGgiIDx0eXBlIDIgc3RydWN0IHsgVXNlciA8dHlwZSAtMTY+OyBQYXNzd29yZCA8dHlwZSAtMTY+OyB9Pj47CnR5cGUgPHR5cGUgMyAiRGlhbGVyIiA8dHlwZSA0IGludGVyZmFjZSB7IERpYWwgKG5ldHdvcmsgPHR5cGUgLTE2PiwgYWRkciA8dHlwZSAtMTY+KSAoYyA8dHlwZSA1ICJuZXQuQ29ubiIgPHR5cGUgNiBpbnRlcmZhY2UgeyBSZWFkIChiIDx0eXBlIDcgW10gPHR5cGUgLTIwPj4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsgV3JpdGUgKGIgPHR5cGUgOCBbXSA8dHlwZSAtMjA+PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOyBDbG9zZSAoKSA8dHlwZSAtMTk+OyBMb2NhbEFkZHIgKCkgPHR5cGUgOSAibmV0LkFkZHIiIDx0eXBlIDEwIGludGVyZmFjZSB7IE5ldHdvcmsgKCkgPHR5cGUgLTE2PjsgU3RyaW5nICgpIDx0eXBlIC0xNj47IH0+PjsgUmVtb3RlQWRkciAoKSA8dHlwZSA5PjsgU2V0RGVhZGxpbmUgKHQgPHR5cGUgMTEgInRpbWUuVGltZSIgInRpbWUiIDx0eXBlIDEyIHN0cnVjdCB7IC50aW1lLnNlYyA8dHlwZSAtND47IC50aW1lLm5zZWMgPHR5cGUgLTM+OyAudGltZS5sb2MgPHR5cGUgMTMgKjx0eXBlIDE0ICJ0aW1lLkxvY2F0aW9uIiA8dHlwZSAxNSBzdHJ1Y3QgeyAudGltZS5uYW1lIDx0eXBlIC0xNj47IC50aW1lLnpvbmUgPHR5cGUgMTYgW10gPHR5cGUgMTcgIi50aW1lLnpvbmUiIDx0eXBlIDE4IHN0cnVjdCB7IC50aW1lLm5hbWUgPHR5cGUgLTE2PjsgLnRpbWUub2Zmc2V0IDx0eXBlIC0xMT47IC50aW1lLmlzRFNUIDx0eXBlIC0xNT47IH0+Pj47IC50aW1lLnR4IDx0eXBlIDE5IFtdIDx0eXBlIDIwICIudGltZS56b25lVHJhbnMiIDx0eXBlIDIxIHN0cnVjdCB7IC50aW1lLndoZW4gPHR5cGUgLTQ+OyAudGltZS5pbmRleCA8dHlwZSAtNT47IC50aW1lLmlzc3RkIDx0eXBlIC0xNT47IC50aW1lLmlzdXRjIDx0eXBlIC0xNT47IH0+Pj47IC50aW1lLmNhY2hlU3RhcnQgPHR5cGUgLTQ+OyAudGltZS5jYWNoZUVuZCA8dHlwZSAtND47IC50aW1lLmNhY2hlWm9uZSA8dHlwZSAyMiAqPHR5cGUgMTc+PjsgfT4KIGZ1bmMgKGwgPHR5cGUgMjMgKjx0eXBlIDE0Pj4pIC50aW1lLmZpcnN0Wm9uZVVzZWQgKCkgPHR5cGUgLTE1PjsKIGZ1bmMgKGwgPHR5cGUgMjM+KSAudGltZS5sb29rdXAgKHNlYyA8dHlwZSAtND4pIChuYW1lIDx0eXBlIC0xNj4sIG9mZnNldCA8dHlwZSAtMTE+LCBpc0RTVCA8dHlwZSAtMTU+LCBzdGFydCA8dHlwZSAtND4sIGVuZCA8dHlwZSAtND4pOwogZnVuYyAobCA8dHlwZSAyMz4pIC50aW1lLmxvb2t1cE5hbWUgKG5hbWUgPHR5cGUgLTE2PiwgdW5peCA8dHlwZSAtND4pIChvZmZzZXQgPHR5cGUgLTExPiwgaXNEU1QgPHR5cGUgLTE1Piwgb2sgPHR5cGUgLTE1Pik7CiBmdW5jIChsIDx0eXBlIDIzPikgU3RyaW5nICgpIDx0eXBlIC0xNj47CiBmdW5jIChsIDx0eXBlIDIzPikgLnRpbWUuZ2V0ICgpIDx0eXBlIDIzPjsKIGZ1bmMgKGwgPHR5cGUgMjM+KSAudGltZS5sb29rdXBGaXJzdFpvbmUgKCkgPHR5cGUgLTExPjsKPj47IH0+CiBmdW5jICh0IDx0eXBlIDExPikgQWZ0ZXIgKHUgPHR5cGUgMTE+KSA8dHlwZSAtMTU+OwogZnVuYyAodCA8dHlwZSAxMT4pIE1hcnNoYWxUZXh0ICgpICg/IDx0eXBlIDI0IFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAodCA8dHlwZSAxMT4pIERhdGUgKCkgKHllYXIgPHR5cGUgLTExPiwgbW9udGggPHR5cGUgMjUgInRpbWUuTW9udGgiIDx0eXBlIC0xMT4KIGZ1bmMgKG0gPHR5cGUgMjU+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKPiwgZGF5IDx0eXBlIC0xMT4pOwogZnVuYyAodCA8dHlwZSAxMT4pIC50aW1lLmFicyAoKSA8dHlwZSAtOD47CiBmdW5jICh0IDx0eXBlIDExPikgV2Vla2RheSAoKSA8dHlwZSAyNiAidGltZS5XZWVrZGF5IiA8dHlwZSAtMTE+CiBmdW5jIChkIDx0eXBlIDI2PikgU3RyaW5nICgpIDx0eXBlIC0xNj47Cj47CiBmdW5jICh0IDx0eXBlIDExPikgTmFub3NlY29uZCAoKSA8dHlwZSAtMTE+OwogZnVuYyAodCA8dHlwZSAyNyAqPHR5cGUgMTE+PikgR29iRGVjb2RlIChkYXRhIDx0eXBlIDI4IFtdIDx0eXBlIC0yMD4+KSA8dHlwZSAtMTk+OwogZnVuYyAodCA8dHlwZSAxMT4pIEluIChsb2MgPHR5cGUgMTM+KSA8dHlwZSAxMT47CiBmdW5jICh0IDx0eXBlIDExPikgTG9jYWwgKCkgPHR5cGUgMTE+OwogZnVuYyAodCA8dHlwZSAxMT4pIE1vbnRoICgpIDx0eXBlIDI1PjsKIGZ1bmMgKHQgPHR5cGUgMTE+KSBIb3VyICgpIDx0eXBlIC0xMT47CiBmdW5jICh0IDx0eXBlIDExPikgTWFyc2hhbEJpbmFyeSAoKSAoPyA8dHlwZSAyOSBbXSA8dHlwZSAtMjA+PiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKHQgPHR5cGUgMTE+KSBVbml4TmFubyAoKSA8dHlwZSAtND47CiBmdW5jICh0IDx0eXBlIDExPikgRXF1YWwgKHUgPHR5cGUgMTE+KSA8dHlwZSAtMTU+OwogZnVuYyAodCA8dHlwZSAxMT4pIEZvcm1hdCAobGF5b3V0IDx0eXBlIC0xNj4pIDx0eXBlIC0xNj47CiBmdW5jICh0IDx0eXBlIDExPikgQWRkRGF0ZSAoeWVhcnMgPHR5cGUgLTExPiwgbW9udGhzIDx0eXBlIC0xMT4sIGRheXMgPHR5cGUgLTExPikgPHR5cGUgMTE+OwogZnVuYyAodCA8dHlwZSAxMT4pIFpvbmUgKCkgKG5hbWUgPHR5cGUgLTE2Piwgb2Zmc2V0IDx0eXBlIC0xMT4pOwogZnVuYyAodCA8dHlwZSAxMT4pIERheSAoKSA8dHlwZSAtMTE+OwogZnVuYyAodCA8dHlwZSAxMT4pIENsb2NrICgpIChob3VyIDx0eXBlIC0xMT4sIG1pbiA8dHlwZSAtMTE+LCBzZWMgPHR5cGUgLTExPik7CiBmdW5jICh0IDx0eXBlIDExPikgTWFyc2hhbEpTT04gKCkgKD8gPHR5cGUgMzAgW10gPHR5cGUgLTIwPj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jICh0IDx0eXBlIDExPikgVVRDICgpIDx0eXBlIDExPjsKIGZ1bmMgKHQgPHR5cGUgMTE+KSAudGltZS5kYXRlIChmdWxsIDx0eXBlIC0xNT4pICh5ZWFyIDx0eXBlIC0xMT4sIG1vbnRoIDx0eXBlIDI1PiwgZGF5IDx0eXBlIC0xMT4sIHlkYXkgPHR5cGUgLTExPik7CiBmdW5jICh0IDx0eXBlIDExPikgSXNaZXJvICgpIDx0eXBlIC0xNT47CiBmdW5jICh0IDx0eXBlIDExPikgQmVmb3JlICh1IDx0eXBlIDExPikgPHR5cGUgLTE1PjsKIGZ1bmMgKHQgPHR5cGUgMTE+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKHQgPHR5cGUgMTE+KSBTZWNvbmQgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKHQgPHR5cGUgMTE+KSBNaW51dGUgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKHQgPHR5cGUgMTE+KSBTdWIgKHUgPHR5cGUgMTE+KSA8dHlwZSAzMSAidGltZS5EdXJhdGlvbiIgPHR5cGUgLTQ+CiBmdW5jIChkIDx0eXBlIDMxPikgU2Vjb25kcyAoKSA8dHlwZSAtMTA+OwogZnVuYyAoZCA8dHlwZSAzMT4pIFN0cmluZyAoKSA8dHlwZSAtMTY+OwogZnVuYyAoZCA8dHlwZSAzMT4pIE1pbnV0ZXMgKCkgPHR5cGUgLTEwPjsKIGZ1bmMgKGQgPHR5cGUgMzE+KSBIb3VycyAoKSA8dHlwZSAtMTA+OwogZnVuYyAoZCA8dHlwZSAzMT4pIE5hbm9zZWNvbmRzICgpIDx0eXBlIC00PjsKPjsKIGZ1bmMgKHQgPHR5cGUgMTE+KSBSb3VuZCAoZCA8dHlwZSAzMT4pIDx0eXBlIDExPjsKIGZ1bmMgKHQgPHR5cGUgMTE+KSBVbml4ICgpIDx0eXBlIC00PjsKIGZ1bmMgKHQgPHR5cGUgMjc+KSBVbm1hcnNoYWxUZXh0IChkYXRhIDx0eXBlIDMyIFtdIDx0eXBlIC0yMD4+KSAoZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAodCA8dHlwZSAxMT4pIEFkZCAoZCA8dHlwZSAzMT4pIDx0eXBlIDExPjsKIGZ1bmMgKHQgPHR5cGUgMTE+KSBUcnVuY2F0ZSAoZCA8dHlwZSAzMT4pIDx0eXBlIDExPjsKIGZ1bmMgKHQgPHR5cGUgMTE+KSBMb2NhdGlvbiAoKSA8dHlwZSAxMz47CiBmdW5jICh0IDx0eXBlIDExPikgR29iRW5jb2RlICgpICg/IDx0eXBlIDMzIFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAodCA8dHlwZSAyNz4pIFVubWFyc2hhbEJpbmFyeSAoZGF0YSA8dHlwZSAzNCBbXSA8dHlwZSAtMjA+PikgPHR5cGUgLTE5PjsKIGZ1bmMgKHQgPHR5cGUgMTE+KSBJU09XZWVrICgpICh5ZWFyIDx0eXBlIC0xMT4sIHdlZWsgPHR5cGUgLTExPik7CiBmdW5jICh0IDx0eXBlIDExPikgLnRpbWUubG9jYWJzICgpIChuYW1lIDx0eXBlIC0xNj4sIG9mZnNldCA8dHlwZSAtMTE+LCBhYnMgPHR5cGUgLTg+KTsKIGZ1bmMgKHQgPHR5cGUgMTE+KSBZZWFyRGF5ICgpIDx0eXBlIC0xMT47CiBmdW5jICh0IDx0eXBlIDExPikgWWVhciAoKSA8dHlwZSAtMTE+OwogZnVuYyAodCA8dHlwZSAyNz4pIFVubWFyc2hhbEpTT04gKGRhdGEgPHR5cGUgMzUgW10gPHR5cGUgLTIwPj4pIChlcnIgPHR5cGUgLTE5Pik7Cj4pIDx0eXBlIC0xOT47IFNldFJlYWREZWFkbGluZSAodCA8dHlwZSAxMT4pIDx0eXBlIC0xOT47IFNldFdyaXRlRGVhZGxpbmUgKHQgPHR5cGUgMTE+KSA8dHlwZSAtMTk+OyB9Pj4sIGVyciA8dHlwZSAtMTk+KTsgfT4+Owp2YXIgRGlyZWN0IDx0eXBlIDM2ICIuZXhwL3Byb3h5LmRpcmVjdCIgPHR5cGUgMzcgc3RydWN0IHsgfT4KIGZ1bmMgKD8gPHR5cGUgMzY+KSBEaWFsIChuZXR3b3JrIDx0eXBlIC0xNj4sIGFkZHIgPHR5cGUgLTE2PikgKD8gPHR5cGUgNT4sID8gPHR5cGUgLTE5Pik7Cj47CmZ1bmMgRnJvbUVudmlyb25tZW50ICgpIDx0eXBlIDM+OwpmdW5jIEZyb21VUkwgKHUgPHR5cGUgMzggKjx0eXBlIDM5ICJuZXQvdXJsLlVSTCIgPHR5cGUgNDAgc3RydWN0IHsgU2NoZW1lIDx0eXBlIC0xNj47IE9wYXF1ZSA8dHlwZSAtMTY+OyBVc2VyIDx0eXBlIDQxICo8dHlwZSA0MiAibmV0L3VybC5Vc2VyaW5mbyIgPHR5cGUgNDMgc3RydWN0IHsgLm5ldC91cmwudXNlcm5hbWUgPHR5cGUgLTE2PjsgLm5ldC91cmwucGFzc3dvcmQgPHR5cGUgLTE2PjsgLm5ldC91cmwucGFzc3dvcmRTZXQgPHR5cGUgLTE1PjsgfT4KIGZ1bmMgKHUgPHR5cGUgNDQgKjx0eXBlIDQyPj4pIFVzZXJuYW1lICgpIDx0eXBlIC0xNj47CiBmdW5jICh1IDx0eXBlIDQ0PikgUGFzc3dvcmQgKCkgKD8gPHR5cGUgLTE2PiwgPyA8dHlwZSAtMTU+KTsKIGZ1bmMgKHUgPHR5cGUgNDQ+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKPj47IEhvc3QgPHR5cGUgLTE2PjsgUGF0aCA8dHlwZSAtMTY+OyBSYXdRdWVyeSA8dHlwZSAtMTY+OyBGcmFnbWVudCA8dHlwZSAtMTY+OyB9PgogZnVuYyAodSA8dHlwZSA0NSAqPHR5cGUgMzk+PikgSXNBYnMgKCkgPHR5cGUgLTE1PjsKIGZ1bmMgKHUgPHR5cGUgNDU+KSBSZXF1ZXN0VVJJICgpIDx0eXBlIC0xNj47CiBmdW5jICh1IDx0eXBlIDQ1PikgU3RyaW5nICgpIDx0eXBlIC0xNj47CiBmdW5jICh1IDx0eXBlIDQ1PikgUXVlcnkgKCkgPHR5cGUgNDYgIm5ldC91cmwuVmFsdWVzIiA8dHlwZSA0NyBtYXAgWzx0eXBlIC0xNj5dIDx0eXBlIDQ4IFtdIDx0eXBlIC0xNj4+PgogZnVuYyAodiA8dHlwZSA0Nj4pIEdldCAoa2V5IDx0eXBlIC0xNj4pIDx0eXBlIC0xNj47CiBmdW5jICh2IDx0eXBlIDQ2PikgRW5jb2RlICgpIDx0eXBlIC0xNj47CiBmdW5jICh2IDx0eXBlIDQ2PikgU2V0IChrZXkgPHR5cGUgLTE2PiwgdmFsdWUgPHR5cGUgLTE2Pik7CiBmdW5jICh2IDx0eXBlIDQ2PikgQWRkIChrZXkgPHR5cGUgLTE2PiwgdmFsdWUgPHR5cGUgLTE2Pik7CiBmdW5jICh2IDx0eXBlIDQ2PikgRGVsIChrZXkgPHR5cGUgLTE2Pik7Cj47CiBmdW5jICh1IDx0eXBlIDQ1PikgUmVzb2x2ZVJlZmVyZW5jZSAocmVmIDx0eXBlIDQ1PikgPHR5cGUgNDU+OwogZnVuYyAodSA8dHlwZSA0NT4pIFBhcnNlIChyZWYgPHR5cGUgLTE2PikgKD8gPHR5cGUgNDU+LCA/IDx0eXBlIC0xOT4pOwo+PiwgZm9yd2FyZCA8dHlwZSAzPikgKD8gPHR5cGUgMz4sID8gPHR5cGUgLTE5Pik7CmZ1bmMgTmV3UGVySG9zdCAoZGVmYXVsdERpYWxlciA8dHlwZSAzPiwgYnlwYXNzIDx0eXBlIDM+KSA8dHlwZSA0OSAqPHR5cGUgNTAgIlBlckhvc3QiIDx0eXBlIDUxIHN0cnVjdCB7IC5leHAvcHJveHkuZGVmIDx0eXBlIDM+OyAuZXhwL3Byb3h5LmJ5cGFzcyA8dHlwZSAzPjsgLmV4cC9wcm94eS5ieXBhc3NOZXR3b3JrcyA8dHlwZSA1MiBbXSA8dHlwZSA1MyAqPHR5cGUgNTQgIm5ldC5JUE5ldCIgPHR5cGUgNTUgc3RydWN0IHsgSVAgPHR5cGUgNTYgIm5ldC5JUCIgPHR5cGUgNTcgW10gPHR5cGUgLTIwPj4KIGZ1bmMgKGlwIDx0eXBlIDU2PikgTWFyc2hhbFRleHQgKCkgKD8gPHR5cGUgNTggW10gPHR5cGUgLTIwPj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jIChpcCA8dHlwZSA1Nj4pIElzTGlua0xvY2FsTXVsdGljYXN0ICgpIDx0eXBlIC0xNT47CiBmdW5jIChpcCA8dHlwZSA1Nj4pIElzTXVsdGljYXN0ICgpIDx0eXBlIC0xNT47CiBmdW5jIChpcCA8dHlwZSA1Nj4pIFRvNCAoKSA8dHlwZSA1Nj47CiBmdW5jIChpcCA8dHlwZSA1OSAqPHR5cGUgNTY+PikgVW5tYXJzaGFsVGV4dCAodGV4dCA8dHlwZSA2MCBbXSA8dHlwZSAtMjA+PikgPHR5cGUgLTE5PjsKIGZ1bmMgKGlwIDx0eXBlIDU2PikgVG8xNiAoKSA8dHlwZSA1Nj47CiBmdW5jIChpcCA8dHlwZSA1Nj4pIFN0cmluZyAoKSA8dHlwZSAtMTY+OwogZnVuYyAoaXAgPHR5cGUgNTY+KSBJc0xpbmtMb2NhbFVuaWNhc3QgKCkgPHR5cGUgLTE1PjsKIGZ1bmMgKGlwIDx0eXBlIDU2PikgSXNMb29wYmFjayAoKSA8dHlwZSAtMTU+OwogZnVuYyAoaXAgPHR5cGUgNTY+KSBFcXVhbCAoeCA8dHlwZSA1Nj4pIDx0eXBlIC0xNT47CiBmdW5jIChpcCA8dHlwZSA1Nj4pIERlZmF1bHRNYXNrICgpIDx0eXBlIDYxICJuZXQuSVBNYXNrIiA8dHlwZSA2MiBbXSA8dHlwZSAtMjA+PgogZnVuYyAobSA8dHlwZSA2MT4pIFN0cmluZyAoKSA8dHlwZSAtMTY+OwogZnVuYyAobSA8dHlwZSA2MT4pIFNpemUgKCkgKG9uZXMgPHR5cGUgLTExPiwgYml0cyA8dHlwZSAtMTE+KTsKPjsKIGZ1bmMgKGlwIDx0eXBlIDU2PikgTWFzayAobWFzayA8dHlwZSA2MT4pIDx0eXBlIDU2PjsKIGZ1bmMgKGlwIDx0eXBlIDU2PikgSXNVbnNwZWNpZmllZCAoKSA8dHlwZSAtMTU+OwogZnVuYyAoaXAgPHR5cGUgNTY+KSBJc0ludGVyZmFjZUxvY2FsTXVsdGljYXN0ICgpIDx0eXBlIC0xNT47CiBmdW5jIChpcCA8dHlwZSA1Nj4pIElzR2xvYmFsVW5pY2FzdCAoKSA8dHlwZSAtMTU+Owo+OyBNYXNrIDx0eXBlIDYxPjsgfT4KIGZ1bmMgKG4gPHR5cGUgNjMgKjx0eXBlIDU0Pj4pIENvbnRhaW5zIChpcCA8dHlwZSA1Nj4pIDx0eXBlIC0xNT47CiBmdW5jIChuIDx0eXBlIDYzPikgU3RyaW5nICgpIDx0eXBlIC0xNj47CiBmdW5jIChuIDx0eXBlIDYzPikgTmV0d29yayAoKSA8dHlwZSAtMTY+Owo+Pj47IC5leHAvcHJveHkuYnlwYXNzSVBzIDx0eXBlIDY0IFtdIDx0eXBlIDU2Pj47IC5leHAvcHJveHkuYnlwYXNzWm9uZXMgPHR5cGUgNjUgW10gPHR5cGUgLTE2Pj47IC5leHAvcHJveHkuYnlwYXNzSG9zdHMgPHR5cGUgNjYgW10gPHR5cGUgLTE2Pj47IH0+CiBmdW5jIChwIDx0eXBlIDY3ICo8dHlwZSA1MD4+KSBEaWFsIChuZXR3b3JrIDx0eXBlIC0xNj4sIGFkZHIgPHR5cGUgLTE2PikgKGMgPHR5cGUgNT4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKHAgPHR5cGUgNjc+KSAuZXhwL3Byb3h5LmRpYWxlckZvclJlcXVlc3QgKGhvc3QgPHR5cGUgLTE2PikgPHR5cGUgMz47CiBmdW5jIChwIDx0eXBlIDY3PikgQWRkRnJvbVN0cmluZyAocyA8dHlwZSAtMTY+KTsKIGZ1bmMgKHAgPHR5cGUgNjc+KSBBZGRJUCAoaXAgPHR5cGUgNTY+KTsKIGZ1bmMgKHAgPHR5cGUgNjc+KSBBZGROZXR3b3JrIChuZXQgPHR5cGUgNTM+KTsKIGZ1bmMgKHAgPHR5cGUgNjc+KSBBZGRab25lICh6b25lIDx0eXBlIC0xNj4pOwogZnVuYyAocCA8dHlwZSA2Nz4pIEFkZEhvc3QgKGhvc3QgPHR5cGUgLTE2Pik7Cj4+Owp0eXBlIDx0eXBlIDUwPjsKZnVuYyBSZWdpc3RlckRpYWxlclR5cGUgKHNjaGVtZSA8dHlwZSAtMTY+LCBmIDx0eXBlIDY4ICg/IDx0eXBlIDM4PiwgPyA8dHlwZSAzPikgKD8gPHR5cGUgMz4sID8gPHR5cGUgLTE5Pik+KTsKZnVuYyBTT0NLUzUgKG5ldHdvcmsgPHR5cGUgLTE2PiwgYWRkciA8dHlwZSAtMTY+LCBhdXRoIDx0eXBlIDY5ICo8dHlwZSAxPj4sIGZvcndhcmQgPHR5cGUgMz4pICg/IDx0eXBlIDM+LCA/IDx0eXBlIC0xOT4pOwpjaGVja3N1bSA1MTc5NEE0MkJCMkQyMEM5NTVBNDkyMDI2MzgzRjRBNjlDMEI2Q0JDOwoALnN5bXRhYgAuc3RydGFiAC5zaHN0cnRhYgAuZ29fZXhwb3J0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbAAAAAQAAAAAAAAAAAAAANAAAAOIhAAAAAAAAAAAAAAEAAAAAAAAAEQAAAAMAAAAAAAAAAAAAABYiAAAmAAAAAAAAAAAAAAABAAAAAAAAAAEAAAACAAAAAAAAAAAAAAA8IgAAIAAAAAQAAAACAAAABAAAABAAAAAJAAAAAwAAAAAAAAAAAAAAXCIAAAEAAAAAAAAAAAAAAAEAAAAAAAAA