f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAAAERAAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIGR3YXJmOwpwa2dwYXRoIGRlYnVnL2R3YXJmOwpwcmlvcml0eSA3OwppbXBvcnQgYmluYXJ5IGVuY29kaW5nL2JpbmFyeSAiZW5jb2RpbmcvYmluYXJ5IjsKaW1wb3J0IGVycm9ycyBlcnJvcnMgImVycm9ycyI7CmltcG9ydCBmbXQgZm10ICJmbXQiOwppbXBvcnQgZmlsZXBhdGggcGF0aC9maWxlcGF0aCAicGF0aC9maWxlcGF0aCI7CmltcG9ydCBzb3J0IHNvcnQgInNvcnQiOwppbXBvcnQgc3RyY29udiBzdHJjb252ICJzdHJjb252IjsKaW5pdCBkd2FyZiBkZWJ1Z19kd2FyZi4uaW1wb3J0IDcgbWF0aCBtYXRoLi5pbXBvcnQgMSBydW50aW1lIHJ1bnRpbWUuLmltcG9ydCAxIHVuaWNvZGUgdW5pY29kZS4uaW1wb3J0IDEgc3RyY29udiBzdHJjb252Li5pbXBvcnQgMiBzeW5jIHN5bmMuLmltcG9ydCAyIGlvIGlvLi5pbXBvcnQgMyByZWZsZWN0IHJlZmxlY3QuLmltcG9ydCAzIHN5c2NhbGwgc3lzY2FsbC4uaW1wb3J0IDMgYmluYXJ5IGVuY29kaW5nX2JpbmFyeS4uaW1wb3J0IDQgYnl0ZXMgYnl0ZXMuLmltcG9ydCA0IHRpbWUgdGltZS4uaW1wb3J0IDQgb3Mgb3MuLmltcG9ydCA1IGZpbGVwYXRoIHBhdGhfZmlsZXBhdGguLmltcG9ydCA2IGZtdCBmbXQuLmltcG9ydCA2Owp0eXBlIDx0eXBlIDEgIkFkZHJUeXBlIiA8dHlwZSAyIHN0cnVjdCB7ID8gPHR5cGUgMyAiQmFzaWNUeXBlIiA8dHlwZSA0IHN0cnVjdCB7ID8gPHR5cGUgNSAiQ29tbW9uVHlwZSIgPHR5cGUgNiBzdHJ1Y3QgeyBCeXRlU2l6ZSA8dHlwZSAtND47IE5hbWUgPHR5cGUgLTE2PjsgfT4KIGZ1bmMgKGMgPHR5cGUgNyAqPHR5cGUgNT4+KSBDb21tb24gKCkgPHR5cGUgNz47CiBmdW5jIChjIDx0eXBlIDc+KSBTaXplICgpIDx0eXBlIC00PjsKPjsgQml0U2l6ZSA8dHlwZSAtND47IEJpdE9mZnNldCA8dHlwZSAtND47IH0+CiBmdW5jIChiIDx0eXBlIDggKjx0eXBlIDM+PikgQmFzaWMgKCkgPHR5cGUgOD47CiBmdW5jICh0IDx0eXBlIDg+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKPjsgfT4+Owp0eXBlIDx0eXBlIDkgIkFycmF5VHlwZSIgPHR5cGUgMTAgc3RydWN0IHsgPyA8dHlwZSA1PjsgVHlwZSA8dHlwZSAxMSAiVHlwZSIgPHR5cGUgMTIgaW50ZXJmYWNlIHsgQ29tbW9uICgpIDx0eXBlIDEzICo8dHlwZSA1Pj47IFN0cmluZyAoKSA8dHlwZSAtMTY+OyBTaXplICgpIDx0eXBlIC00PjsgfT4+OyBTdHJpZGVCaXRTaXplIDx0eXBlIC00PjsgQ291bnQgPHR5cGUgLTQ+OyB9PgogZnVuYyAodCA8dHlwZSAxNCAqPHR5cGUgOT4+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKHQgPHR5cGUgMTQ+KSBTaXplICgpIDx0eXBlIC00PjsKPjsKdHlwZSA8dHlwZSAxNSAiQXR0ciIgPHR5cGUgLTc+CiBmdW5jIChhIDx0eXBlIDE1PikgU3RyaW5nICgpIDx0eXBlIC0xNj47CiBmdW5jIChhIDx0eXBlIDE1PikgR29TdHJpbmcgKCkgPHR5cGUgLTE2PjsKPjsKY29uc3QgQXR0ckFic3RyYWN0T3JpZ2luIDx0eXBlIDE1PiA9IDQ5IDsKY29uc3QgQXR0ckFjY2Vzc2liaWxpdHkgPHR5cGUgMTU+ID0gNTAgOwpjb25zdCBBdHRyQWRkckNsYXNzIDx0eXBlIDE1PiA9IDUxIDsKY29uc3QgQXR0ckFsbG9jYXRlZCA8dHlwZSAxNT4gPSA3OCA7CmNvbnN0IEF0dHJBcnRpZmljaWFsIDx0eXBlIDE1PiA9IDUyIDsKY29uc3QgQXR0ckFzc29jaWF0ZWQgPHR5cGUgMTU+ID0gNzkgOwpjb25zdCBBdHRyQmFzZVR5cGVzIDx0eXBlIDE1PiA9IDUzIDsKY29uc3QgQXR0ckJpdE9mZnNldCA8dHlwZSAxNT4gPSAxMiA7CmNvbnN0IEF0dHJCaXRTaXplIDx0eXBlIDE1PiA9IDEzIDsKY29uc3QgQXR0ckJ5dGVTaXplIDx0eXBlIDE1PiA9IDExIDsKY29uc3QgQXR0ckNhbGxDb2x1bW4gPHR5cGUgMTU+ID0gODcgOwpjb25zdCBBdHRyQ2FsbEZpbGUgPHR5cGUgMTU+ID0gODggOwpjb25zdCBBdHRyQ2FsbExpbmUgPHR5cGUgMTU+ID0gODkgOwpjb25zdCBBdHRyQ2FsbGluZyA8dHlwZSAxNT4gPSA1NCA7CmNvbnN0IEF0dHJDb21tb25SZWYgPHR5cGUgMTU+ID0gMjYgOwpjb25zdCBBdHRyQ29tcERpciA8dHlwZSAxNT4gPSAyNyA7CmNvbnN0IEF0dHJDb25zdFZhbHVlIDx0eXBlIDE1PiA9IDI4IDsKY29uc3QgQXR0ckNvbnRhaW5pbmdUeXBlIDx0eXBlIDE1PiA9IDI5IDsKY29uc3QgQXR0ckNvdW50IDx0eXBlIDE1PiA9IDU1IDsKY29uc3QgQXR0ckRhdGFMb2NhdGlvbiA8dHlwZSAxNT4gPSA4MCA7CmNvbnN0IEF0dHJEYXRhTWVtYmVyTG9jIDx0eXBlIDE1PiA9IDU2IDsKY29uc3QgQXR0ckRlY2xDb2x1bW4gPHR5cGUgMTU+ID0gNTcgOwpjb25zdCBBdHRyRGVjbEZpbGUgPHR5cGUgMTU+ID0gNTggOwpjb25zdCBBdHRyRGVjbExpbmUgPHR5cGUgMTU+ID0gNTkgOwpjb25zdCBBdHRyRGVjbGFyYXRpb24gPHR5cGUgMTU+ID0gNjAgOwpjb25zdCBBdHRyRGVmYXVsdFZhbHVlIDx0eXBlIDE1PiA9IDMwIDsKY29uc3QgQXR0ckRlc2NyaXB0aW9uIDx0eXBlIDE1PiA9IDkwIDsKY29uc3QgQXR0ckRpc2NyIDx0eXBlIDE1PiA9IDIxIDsKY29uc3QgQXR0ckRpc2NyTGlzdCA8dHlwZSAxNT4gPSA2MSA7CmNvbnN0IEF0dHJEaXNjclZhbHVlIDx0eXBlIDE1PiA9IDIyIDsKY29uc3QgQXR0ckVuY29kaW5nIDx0eXBlIDE1PiA9IDYyIDsKY29uc3QgQXR0ckVudHJ5cGMgPHR5cGUgMTU+ID0gODIgOwpjb25zdCBBdHRyRXh0ZW5zaW9uIDx0eXBlIDE1PiA9IDg0IDsKY29uc3QgQXR0ckV4dGVybmFsIDx0eXBlIDE1PiA9IDYzIDsKY29uc3QgQXR0ckZyYW1lQmFzZSA8dHlwZSAxNT4gPSA2NCA7CmNvbnN0IEF0dHJGcmllbmQgPHR5cGUgMTU+ID0gNjUgOwpjb25zdCBBdHRySGlnaHBjIDx0eXBlIDE1PiA9IDE4IDsKY29uc3QgQXR0cklkZW50aWZpZXJDYXNlIDx0eXBlIDE1PiA9IDY2IDsKY29uc3QgQXR0ckltcG9ydCA8dHlwZSAxNT4gPSAyNCA7CmNvbnN0IEF0dHJJbmxpbmUgPHR5cGUgMTU+ID0gMzIgOwpjb25zdCBBdHRySXNPcHRpb25hbCA8dHlwZSAxNT4gPSAzMyA7CmNvbnN0IEF0dHJMYW5ndWFnZSA8dHlwZSAxNT4gPSAxOSA7CmNvbnN0IEF0dHJMb2NhdGlvbiA8dHlwZSAxNT4gPSAyIDsKY29uc3QgQXR0ckxvd2VyQm91bmQgPHR5cGUgMTU+ID0gMzQgOwpjb25zdCBBdHRyTG93cGMgPHR5cGUgMTU+ID0gMTcgOwpjb25zdCBBdHRyTWFjcm9JbmZvIDx0eXBlIDE1PiA9IDY3IDsKY29uc3QgQXR0ck5hbWUgPHR5cGUgMTU+ID0gMyA7CmNvbnN0IEF0dHJOYW1lbGlzdEl0ZW0gPHR5cGUgMTU+ID0gNjggOwpjb25zdCBBdHRyT3JkZXJpbmcgPHR5cGUgMTU+ID0gOSA7CmNvbnN0IEF0dHJQcmlvcml0eSA8dHlwZSAxNT4gPSA2OSA7CmNvbnN0IEF0dHJQcm9kdWNlciA8dHlwZSAxNT4gPSAzNyA7CmNvbnN0IEF0dHJQcm90b3R5cGVkIDx0eXBlIDE1PiA9IDM5IDsKY29uc3QgQXR0clJhbmdlcyA8dHlwZSAxNT4gPSA4NSA7CmNvbnN0IEF0dHJSZXR1cm5BZGRyIDx0eXBlIDE1PiA9IDQyIDsKY29uc3QgQXR0clNlZ21lbnQgPHR5cGUgMTU+ID0gNzAgOwpjb25zdCBBdHRyU2libGluZyA8dHlwZSAxNT4gPSAxIDsKY29uc3QgQXR0clNwZWNpZmljYXRpb24gPHR5cGUgMTU+ID0gNzEgOwpjb25zdCBBdHRyU3RhcnRTY29wZSA8dHlwZSAxNT4gPSA0NCA7CmNvbnN0IEF0dHJTdGF0aWNMaW5rIDx0eXBlIDE1PiA9IDcyIDsKY29uc3QgQXR0clN0bXRMaXN0IDx0eXBlIDE1PiA9IDE2IDsKY29uc3QgQXR0clN0cmlkZSA8dHlwZSAxNT4gPSA4MSA7CmNvbnN0IEF0dHJTdHJpZGVTaXplIDx0eXBlIDE1PiA9IDQ2IDsKY29uc3QgQXR0clN0cmluZ0xlbmd0aCA8dHlwZSAxNT4gPSAyNSA7CmNvbnN0IEF0dHJUcmFtcG9saW5lIDx0eXBlIDE1PiA9IDg2IDsKY29uc3QgQXR0clR5cGUgPHR5cGUgMTU+ID0gNzMgOwpjb25zdCBBdHRyVXBwZXJCb3VuZCA8dHlwZSAxNT4gPSA0NyA7CmNvbnN0IEF0dHJVc2VMb2NhdGlvbiA8dHlwZSAxNT4gPSA3NCA7CmNvbnN0IEF0dHJVc2VVVEY4IDx0eXBlIDE1PiA9IDgzIDsKY29uc3QgQXR0clZhclBhcmFtIDx0eXBlIDE1PiA9IDc1IDsKY29uc3QgQXR0clZpcnR1YWxpdHkgPHR5cGUgMTU+ID0gNzYgOwpjb25zdCBBdHRyVmlzaWJpbGl0eSA8dHlwZSAxNT4gPSAyMyA7CmNvbnN0IEF0dHJWdGFibGVFbGVtTG9jIDx0eXBlIDE1PiA9IDc3IDsKdHlwZSA8dHlwZSAzPjsKdHlwZSA8dHlwZSAxNiAiQm9vbFR5cGUiIDx0eXBlIDE3IHN0cnVjdCB7ID8gPHR5cGUgMz47IH0+PjsKdHlwZSA8dHlwZSAxOCAiQ2hhclR5cGUiIDx0eXBlIDE5IHN0cnVjdCB7ID8gPHR5cGUgMz47IH0+PjsKdHlwZSA8dHlwZSA1PjsKdHlwZSA8dHlwZSAyMCAiQ29tcGxleFR5cGUiIDx0eXBlIDIxIHN0cnVjdCB7ID8gPHR5cGUgMz47IH0+PjsKdHlwZSA8dHlwZSAyMiAiRGF0YSIgPHR5cGUgMjMgc3RydWN0IHsgLmRlYnVnL2R3YXJmLmFiYnJldiA8dHlwZSAyNCBbXSA8dHlwZSAtMjA+PjsgLmRlYnVnL2R3YXJmLmFyYW5nZXMgPHR5cGUgMjUgW10gPHR5cGUgLTIwPj47IC5kZWJ1Zy9kd2FyZi5mcmFtZSA8dHlwZSAyNiBbXSA8dHlwZSAtMjA+PjsgLmRlYnVnL2R3YXJmLmluZm8gPHR5cGUgMjcgW10gPHR5cGUgLTIwPj47IC5kZWJ1Zy9kd2FyZi5saW5lIDx0eXBlIDI4IFtdIDx0eXBlIC0yMD4+OyAuZGVidWcvZHdhcmYucHVibmFtZXMgPHR5cGUgMjkgW10gPHR5cGUgLTIwPj47IC5kZWJ1Zy9kd2FyZi5yYW5nZXMgPHR5cGUgMzAgW10gPHR5cGUgLTIwPj47IC5kZWJ1Zy9kd2FyZi5zdHIgPHR5cGUgMzEgW10gPHR5cGUgLTIwPj47IC5kZWJ1Zy9kd2FyZi5hYmJyZXZDYWNoZSA8dHlwZSAzMiBtYXAgWzx0eXBlIC03Pl0gPHR5cGUgMzMgIi5kZWJ1Zy9kd2FyZi5hYmJyZXZUYWJsZSIgPHR5cGUgMzQgbWFwIFs8dHlwZSAtNz5dIDx0eXBlIDM1ICIuZGVidWcvZHdhcmYuYWJicmV2IiA8dHlwZSAzNiBzdHJ1Y3QgeyAuZGVidWcvZHdhcmYudGFnIDx0eXBlIDM3ICJUYWciIDx0eXBlIC03PgogZnVuYyAodCA8dHlwZSAzNz4pIFN0cmluZyAoKSA8dHlwZSAtMTY+OwogZnVuYyAodCA8dHlwZSAzNz4pIEdvU3RyaW5nICgpIDx0eXBlIC0xNj47Cj47IC5kZWJ1Zy9kd2FyZi5jaGlsZHJlbiA8dHlwZSAtMTU+OyAuZGVidWcvZHdhcmYuZmllbGQgPHR5cGUgMzggW10gPHR5cGUgMzkgIi5kZWJ1Zy9kd2FyZi5hZmllbGQiIDx0eXBlIDQwIHN0cnVjdCB7IC5kZWJ1Zy9kd2FyZi5hdHRyIDx0eXBlIDE1PjsgLmRlYnVnL2R3YXJmLmZtdCA8dHlwZSA0MSAiLmRlYnVnL2R3YXJmLmZvcm1hdCIgPHR5cGUgLTc+PjsgfT4+PjsgfT4+Pj4+OyAuZGVidWcvZHdhcmYub3JkZXIgPHR5cGUgNDIgImVuY29kaW5nL2JpbmFyeS5CeXRlT3JkZXIiIDx0eXBlIDQzIGludGVyZmFjZSB7IFVpbnQxNiAoPyA8dHlwZSA0NCBbXSA8dHlwZSAtMjA+PikgPHR5cGUgLTY+OyBVaW50MzIgKD8gPHR5cGUgNDUgW10gPHR5cGUgLTIwPj4pIDx0eXBlIC03PjsgVWludDY0ICg/IDx0eXBlIDQ2IFtdIDx0eXBlIC0yMD4+KSA8dHlwZSAtOD47IFB1dFVpbnQxNiAoPyA8dHlwZSA0NyBbXSA8dHlwZSAtMjA+PiwgPyA8dHlwZSAtNj4pOyBQdXRVaW50MzIgKD8gPHR5cGUgNDggW10gPHR5cGUgLTIwPj4sID8gPHR5cGUgLTc+KTsgUHV0VWludDY0ICg/IDx0eXBlIDQ5IFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC04Pik7IFN0cmluZyAoKSA8dHlwZSAtMTY+OyB9Pj47IC5kZWJ1Zy9kd2FyZi50eXBlQ2FjaGUgPHR5cGUgNTAgbWFwIFs8dHlwZSA1MSAiT2Zmc2V0IiA8dHlwZSAtNz4+XSA8dHlwZSAxMT4+OyAuZGVidWcvZHdhcmYudHlwZVNpZ3MgPHR5cGUgNTIgbWFwIFs8dHlwZSAtOD5dIDx0eXBlIDUzICo8dHlwZSA1NCAiLmRlYnVnL2R3YXJmLnR5cGVVbml0IiA8dHlwZSA1NSBzdHJ1Y3QgeyA/IDx0eXBlIDU2ICIuZGVidWcvZHdhcmYudW5pdCIgPHR5cGUgNTcgc3RydWN0IHsgLmRlYnVnL2R3YXJmLmJhc2UgPHR5cGUgNTE+OyAuZGVidWcvZHdhcmYub2ZmIDx0eXBlIDUxPjsgLmRlYnVnL2R3YXJmLmxpbmVvZmYgPHR5cGUgNTE+OyAuZGVidWcvZHdhcmYuZGF0YSA8dHlwZSA1OCBbXSA8dHlwZSAtMjA+PjsgLmRlYnVnL2R3YXJmLmF0YWJsZSA8dHlwZSAzMz47IC5kZWJ1Zy9kd2FyZi5hc2l6ZSA8dHlwZSAtMTE+OyAuZGVidWcvZHdhcmYudmVycyA8dHlwZSAtMTE+OyAuZGVidWcvZHdhcmYuaXM2NCA8dHlwZSAtMTU+OyAuZGVidWcvZHdhcmYuZGlyIDx0eXBlIC0xNj47IC5kZWJ1Zy9kd2FyZi5wYyA8dHlwZSA1OSBbXSA8dHlwZSA2MCAiLmRlYnVnL2R3YXJmLmFkZHJSYW5nZSIgPHR5cGUgNjEgc3RydWN0IHsgLmRlYnVnL2R3YXJmLmxvdyA8dHlwZSAtOD47IC5kZWJ1Zy9kd2FyZi5oaWdoIDx0eXBlIC04PjsgfT4+PjsgLmRlYnVnL2R3YXJmLmxpbmVzIDx0eXBlIDYyIFtdIDx0eXBlIDYzICIuZGVidWcvZHdhcmYubWFwTGluZUluZm8iIDx0eXBlIDY0IHN0cnVjdCB7IC5kZWJ1Zy9kd2FyZi5saW5lIDx0eXBlIDY1ICJMaW5lIiA8dHlwZSA2NiBzdHJ1Y3QgeyBGaWxlbmFtZSA8dHlwZSAtMTY+OyBPcEluZGV4IDx0eXBlIC0xMT47IExpbmUgPHR5cGUgLTExPjsgQ29sdW1uIDx0eXBlIC0xMT47IElTQSA8dHlwZSAtMTE+OyBEaXNjcmltaW5hdG9yIDx0eXBlIC0xMT47IFN0bXQgPHR5cGUgLTE1PjsgQmxvY2sgPHR5cGUgLTE1PjsgRW5kUHJvbG9ndWUgPHR5cGUgLTE1PjsgQmVnaW5FcGlsb2d1ZSA8dHlwZSAtMTU+OyB9Pj47IC5kZWJ1Zy9kd2FyZi5hZGRycyA8dHlwZSA2NyAiLmRlYnVnL2R3YXJmLmxpbmVBZGRycyIgPHR5cGUgNjggW10gPHR5cGUgNjkgIi5kZWJ1Zy9kd2FyZi5vbmVMaW5lSW5mbyIgPHR5cGUgNzAgc3RydWN0IHsgLmRlYnVnL2R3YXJmLnBjIDx0eXBlIC04PjsgLmRlYnVnL2R3YXJmLmxpbmUgPHR5cGUgLTExPjsgfT4+PgogZnVuYyAocCA8dHlwZSA2Nz4pIExlbiAoKSA8dHlwZSAtMTE+OwogZnVuYyAocCA8dHlwZSA2Nz4pIExlc3MgKGkgPHR5cGUgLTExPiwgaiA8dHlwZSAtMTE+KSA8dHlwZSAtMTU+OwogZnVuYyAocCA8dHlwZSA2Nz4pIFN3YXAgKGkgPHR5cGUgLTExPiwgaiA8dHlwZSAtMTE+KTsKPjsgfT4+PjsgfT4KIGZ1bmMgKHUgPHR5cGUgNzEgKjx0eXBlIDU2Pj4pIC5kZWJ1Zy9kd2FyZi52ZXJzaW9uICgpIDx0eXBlIC0xMT47CiBmdW5jICh1IDx0eXBlIDcxPikgLmRlYnVnL2R3YXJmLmR3YXJmNjQgKCkgKD8gPHR5cGUgLTE1PiwgPyA8dHlwZSAtMTU+KTsKIGZ1bmMgKHUgPHR5cGUgNzE+KSAuZGVidWcvZHdhcmYuYWRkcnNpemUgKCkgPHR5cGUgLTExPjsKPjsgLmRlYnVnL2R3YXJmLnRvZmYgPHR5cGUgNTE+OyAuZGVidWcvZHdhcmYubmFtZSA8dHlwZSAtMTY+OyAuZGVidWcvZHdhcmYuY2FjaGUgPHR5cGUgMTE+OyB9Pj4+PjsgLmRlYnVnL2R3YXJmLnVuaXQgPHR5cGUgNzIgW10gPHR5cGUgNTY+PjsgfT4KIGZ1bmMgKGQgPHR5cGUgNzMgKjx0eXBlIDIyPj4pIC5kZWJ1Zy9kd2FyZi5wYXJzZUFiYnJldiAob2ZmIDx0eXBlIC03PikgKD8gPHR5cGUgMzM+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAoZCA8dHlwZSA3NCAqPHR5cGUgMjI+PikgUmVhZGVyICgpIDx0eXBlIDc1ICo8dHlwZSA3NiAiUmVhZGVyIiA8dHlwZSA3NyBzdHJ1Y3QgeyAuZGVidWcvZHdhcmYuYiA8dHlwZSA3OCAiLmRlYnVnL2R3YXJmLmJ1ZiIgPHR5cGUgNzkgc3RydWN0IHsgLmRlYnVnL2R3YXJmLmR3YXJmIDx0eXBlIDgwICo8dHlwZSAyMj4+OyAuZGVidWcvZHdhcmYub3JkZXIgPHR5cGUgNDI+OyAuZGVidWcvZHdhcmYuZm9ybWF0IDx0eXBlIDgxICIuZGVidWcvZHdhcmYuZGF0YUZvcm1hdCIgPHR5cGUgODIgaW50ZXJmYWNlIHsgLmRlYnVnL2R3YXJmLnZlcnNpb24gKCkgPHR5cGUgLTExPjsgLmRlYnVnL2R3YXJmLmR3YXJmNjQgKCkgKGR3YXJmNjQgPHR5cGUgLTE1PiwgaXNLbm93biA8dHlwZSAtMTU+KTsgLmRlYnVnL2R3YXJmLmFkZHJzaXplICgpIDx0eXBlIC0xMT47IH0+PjsgLmRlYnVnL2R3YXJmLm5hbWUgPHR5cGUgLTE2PjsgLmRlYnVnL2R3YXJmLm9mZiA8dHlwZSA1MT47IC5kZWJ1Zy9kd2FyZi5kYXRhIDx0eXBlIDgzIFtdIDx0eXBlIC0yMD4+OyAuZGVidWcvZHdhcmYuZXJyIDx0eXBlIC0xOT47IH0+CiBmdW5jIChiIDx0eXBlIDg0ICo8dHlwZSA3OD4+KSAuZGVidWcvZHdhcmYudWludDggKCkgPHR5cGUgLTU+OwogZnVuYyAoYiA8dHlwZSA4ND4pIC5kZWJ1Zy9kd2FyZi5ieXRlcyAobiA8dHlwZSAtMTE+KSA8dHlwZSA4NSBbXSA8dHlwZSAtMjA+PjsKIGZ1bmMgKGIgPHR5cGUgODQ+KSAuZGVidWcvZHdhcmYuc2tpcCAobiA8dHlwZSAtMTE+KTsKIGZ1bmMgKGIgPHR5cGUgODQ+KSAuZGVidWcvZHdhcmYuc3RyaW5nICgpIDx0eXBlIC0xNj47CiBmdW5jIChiIDx0eXBlIDg0PikgLmRlYnVnL2R3YXJmLnVpbnQxNiAoKSA8dHlwZSAtNj47CiBmdW5jIChiIDx0eXBlIDg0PikgLmRlYnVnL2R3YXJmLnVpbnQzMiAoKSA8dHlwZSAtNz47CiBmdW5jIChiIDx0eXBlIDg0PikgLmRlYnVnL2R3YXJmLnVpbnQ2NCAoKSA8dHlwZSAtOD47CiBmdW5jIChiIDx0eXBlIDg0PikgLmRlYnVnL2R3YXJmLnZhcmludCAoKSAoYyA8dHlwZSAtOD4sIGJpdHMgPHR5cGUgLTEyPik7CiBmdW5jIChiIDx0eXBlIDg0PikgLmRlYnVnL2R3YXJmLnVpbnQgKCkgPHR5cGUgLTg+OwogZnVuYyAoYiA8dHlwZSA4ND4pIC5kZWJ1Zy9kd2FyZi5pbnQgKCkgPHR5cGUgLTQ+OwogZnVuYyAoYiA8dHlwZSA4ND4pIC5kZWJ1Zy9kd2FyZi5hZGRyICgpIDx0eXBlIC04PjsKIGZ1bmMgKGIgPHR5cGUgODQ+KSAuZGVidWcvZHdhcmYuZXJyb3IgKHMgPHR5cGUgLTE2Pik7CiBmdW5jIChiIDx0eXBlIDg0PikgLmRlYnVnL2R3YXJmLmVudHJ5IChhdGFiIDx0eXBlIDMzPiwgdWJhc2UgPHR5cGUgNTE+KSA8dHlwZSA4NiAqPHR5cGUgODcgIkVudHJ5IiA8dHlwZSA4OCBzdHJ1Y3QgeyBPZmZzZXQgPHR5cGUgNTE+OyBUYWcgPHR5cGUgMzc+OyBDaGlsZHJlbiA8dHlwZSAtMTU+OyBGaWVsZCA8dHlwZSA4OSBbXSA8dHlwZSA5MCAiRmllbGQiIDx0eXBlIDkxIHN0cnVjdCB7IEF0dHIgPHR5cGUgMTU+OyBWYWwgPHR5cGUgOTIgaW50ZXJmYWNlIHsgfT47IH0+Pj47IH0+CiBmdW5jIChlIDx0eXBlIDkzICo8dHlwZSA4Nz4+KSBWYWwgKGEgPHR5cGUgMTU+KSA8dHlwZSA5NCBpbnRlcmZhY2UgeyB9PjsKPj47Cj47IC5kZWJ1Zy9kd2FyZi5kIDx0eXBlIDk1ICo8dHlwZSAyMj4+OyAuZGVidWcvZHdhcmYuZXJyIDx0eXBlIC0xOT47IC5kZWJ1Zy9kd2FyZi51bml0IDx0eXBlIC0xMT47IC5kZWJ1Zy9kd2FyZi5sYXN0Q2hpbGRyZW4gPHR5cGUgLTE1PjsgLmRlYnVnL2R3YXJmLmxhc3RTaWJsaW5nIDx0eXBlIDUxPjsgfT4KIGZ1bmMgKHIgPHR5cGUgOTYgKjx0eXBlIDc2Pj4pIFNlZWsgKG9mZiA8dHlwZSA1MT4pOwogZnVuYyAociA8dHlwZSA5Nj4pIC5kZWJ1Zy9kd2FyZi5tYXliZU5leHRVbml0ICgpOwogZnVuYyAociA8dHlwZSA5Nj4pIE5leHQgKCkgKD8gPHR5cGUgODY+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAociA8dHlwZSA5Nj4pIFNraXBDaGlsZHJlbiAoKTsKIGZ1bmMgKHIgPHR5cGUgOTY+KSAuZGVidWcvZHdhcmYuY2xvbmUgKCkgPHR5cGUgOTcgIi5kZWJ1Zy9kd2FyZi50eXBlUmVhZGVyIiA8dHlwZSA5OCBpbnRlcmZhY2UgeyBTZWVrICg/IDx0eXBlIDUxPik7IE5leHQgKCkgKD8gPHR5cGUgODY+LCA/IDx0eXBlIC0xOT4pOyAuZGVidWcvZHdhcmYuY2xvbmUgKCkgPHR5cGUgOTc+OyAuZGVidWcvZHdhcmYub2Zmc2V0ICgpIDx0eXBlIDUxPjsgfT4+OwogZnVuYyAociA8dHlwZSA5Nj4pIC5kZWJ1Zy9kd2FyZi5vZmZzZXQgKCkgPHR5cGUgNTE+Owo+PjsKIGZ1bmMgKGQgPHR5cGUgOTkgKjx0eXBlIDIyPj4pIC5kZWJ1Zy9kd2FyZi51bml0UmVhZGVyIChpIDx0eXBlIC0xMT4pIDx0eXBlIDc1PjsKIGZ1bmMgKGQgPHR5cGUgMTAwICo8dHlwZSAyMj4+KSBMaW5lRm9yUEMgKHBjIDx0eXBlIC04PikgKD8gPHR5cGUgMTAxIFtdIDx0eXBlIDEwMiAqPHR5cGUgNjU+Pj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jIChkIDx0eXBlIDEwMyAqPHR5cGUgMjI+PikgLmRlYnVnL2R3YXJmLnJlYWRVbml0TGluZSAoaSA8dHlwZSAtMTE+LCB1IDx0eXBlIDEwNCAqPHR5cGUgNTY+PikgPHR5cGUgLTE5PjsKIGZ1bmMgKGQgPHR5cGUgMTA1ICo8dHlwZSAyMj4+KSAuZGVidWcvZHdhcmYucmVhZEFkZHJlc3NSYW5nZXMgKG9mZiA8dHlwZSA1MT4sIGJhc2UgPHR5cGUgLTg+LCB1IDx0eXBlIDEwNiAqPHR5cGUgNTY+PikgPHR5cGUgLTE5PjsKIGZ1bmMgKGQgPHR5cGUgMTA3ICo8dHlwZSAyMj4+KSAuZGVidWcvZHdhcmYuZmluZExpbmUgKHUgPHR5cGUgMTA4ICo8dHlwZSA1Nj4+LCBwYyA8dHlwZSAtOD4pICg/IDx0eXBlIDEwOSBbXSA8dHlwZSAxMDI+PiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKGQgPHR5cGUgMTEwICo8dHlwZSAyMj4+KSBGaWxlTGluZSAocGMgPHR5cGUgLTg+KSAoPyA8dHlwZSAtMTY+LCA/IDx0eXBlIC0xMT4sID8gPHR5cGUgLTE5Pik7CiBmdW5jIChkIDx0eXBlIDExMSAqPHR5cGUgMjI+PikgLmRlYnVnL2R3YXJmLnBhcnNlTGluZSAodSA8dHlwZSAxMTIgKjx0eXBlIDU2Pj4pIDx0eXBlIC0xOT47CiBmdW5jIChkIDx0eXBlIDExMyAqPHR5cGUgMjI+PikgLmRlYnVnL2R3YXJmLnBhcnNlTGluZUhkciAodSA8dHlwZSAxMTQgKjx0eXBlIDU2Pj4sIGIgPHR5cGUgODQ+LCBkd2FyZjY0IDx0eXBlIC0xNT4pIChoZHIgPHR5cGUgMTE1ICIuZGVidWcvZHdhcmYubGluZUhkciIgPHR5cGUgMTE2IHN0cnVjdCB7IC5kZWJ1Zy9kd2FyZi52ZXJzaW9uIDx0eXBlIC02PjsgLmRlYnVnL2R3YXJmLm1pbkluc25MZW4gPHR5cGUgLTU+OyAuZGVidWcvZHdhcmYubWF4T3BzUGVySW5zbiA8dHlwZSAtNT47IC5kZWJ1Zy9kd2FyZi5kZWZTdG10IDx0eXBlIC0xNT47IC5kZWJ1Zy9kd2FyZi5saW5lQmFzZSA8dHlwZSAtMT47IC5kZWJ1Zy9kd2FyZi5saW5lUmFuZ2UgPHR5cGUgLTU+OyAuZGVidWcvZHdhcmYub3BCYXNlIDx0eXBlIC01PjsgLmRlYnVnL2R3YXJmLm9wTGVuIDx0eXBlIDExNyBbXSA8dHlwZSAtNT4+OyAuZGVidWcvZHdhcmYuZGlycyA8dHlwZSAxMTggW10gPHR5cGUgLTE2Pj47IC5kZWJ1Zy9kd2FyZi5maWxlcyA8dHlwZSAxMTkgW10gPHR5cGUgLTE2Pj47IH0+Pik7CiBmdW5jIChkIDx0eXBlIDEyMCAqPHR5cGUgMjI+PikgLmRlYnVnL2R3YXJmLnBhcnNlTGluZVByb2dyYW0gKHUgPHR5cGUgMTIxICo8dHlwZSA1Nj4+LCBiIDx0eXBlIDg0PiwgaGRyIDx0eXBlIDExNT4sIGVuZCA8dHlwZSA1MT4pOwogZnVuYyAoZCA8dHlwZSAxMjIgKjx0eXBlIDIyPj4pIC5kZWJ1Zy9kd2FyZi5hZGRMaW5lIChsaW5lcyA8dHlwZSAxMjMgW10gPHR5cGUgNjM+PiwgbGluZUluZm8gPHR5cGUgNjU+LCBhZGRyZXNzIDx0eXBlIC04PiwgbGluZSA8dHlwZSAtMTE+LCBuZXdMaW5lSW5mbyA8dHlwZSAtMTU+KSAoPyA8dHlwZSAxMjQgW10gPHR5cGUgNjM+PiwgPyA8dHlwZSA2NT4sID8gPHR5cGUgLTE1Pik7CiBmdW5jIChkIDx0eXBlIDEyNSAqPHR5cGUgMjI+PikgQWRkVHlwZXMgKG5hbWUgPHR5cGUgLTE2PiwgdHlwZXMgPHR5cGUgMTI2IFtdIDx0eXBlIC0yMD4+KSA8dHlwZSAtMTk+OwogZnVuYyAoZCA8dHlwZSAxMjU+KSBUeXBlIChvZmYgPHR5cGUgNTE+KSAoPyA8dHlwZSAxMT4sID8gPHR5cGUgLTE5Pik7CiBmdW5jIChkIDx0eXBlIDEyNT4pIC5kZWJ1Zy9kd2FyZi5yZWFkVHlwZSAobmFtZSA8dHlwZSAtMTY+LCByIDx0eXBlIDk3Piwgb2ZmIDx0eXBlIDUxPiwgdHlwZUNhY2hlIDx0eXBlIDEyNyBtYXAgWzx0eXBlIDUxPl0gPHR5cGUgMTE+PikgKD8gPHR5cGUgMTE+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAoZCA8dHlwZSAxMjU+KSAuZGVidWcvZHdhcmYucGFyc2VUeXBlcyAobmFtZSA8dHlwZSAtMTY+LCB0eXBlcyA8dHlwZSAxMjggW10gPHR5cGUgLTIwPj4pIDx0eXBlIC0xOT47CiBmdW5jIChkIDx0eXBlIDEyNT4pIC5kZWJ1Zy9kd2FyZi5zaWdUb1R5cGUgKHNpZyA8dHlwZSAtOD4pICg/IDx0eXBlIDExPiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKGQgPHR5cGUgMTI1PikgLmRlYnVnL2R3YXJmLnBhcnNlVW5pdHMgKCkgKD8gPHR5cGUgMTI5IFtdIDx0eXBlIDU2Pj4sID8gPHR5cGUgLTE5Pik7Cj47CnR5cGUgPHR5cGUgMTMwICJEZWNvZGVFcnJvciIgPHR5cGUgMTMxIHN0cnVjdCB7IE5hbWUgPHR5cGUgLTE2PjsgT2Zmc2V0IDx0eXBlIDUxPjsgRXJyIDx0eXBlIC0xNj47IH0+CiBmdW5jIChlIDx0eXBlIDEzMD4pIEVycm9yICgpIDx0eXBlIC0xNj47Cj47CnR5cGUgPHR5cGUgMTMyICJEb3REb3REb3RUeXBlIiA8dHlwZSAxMzMgc3RydWN0IHsgPyA8dHlwZSA1PjsgfT4KIGZ1bmMgKHQgPHR5cGUgMTM0ICo8dHlwZSAxMzI+PikgU3RyaW5nICgpIDx0eXBlIC0xNj47Cj47CnR5cGUgPHR5cGUgODc+Owp0eXBlIDx0eXBlIDEzNSAiRW51bVR5cGUiIDx0eXBlIDEzNiBzdHJ1Y3QgeyA/IDx0eXBlIDU+OyBFbnVtTmFtZSA8dHlwZSAtMTY+OyBWYWwgPHR5cGUgMTM3IFtdIDx0eXBlIDEzOCAqPHR5cGUgMTM5ICJFbnVtVmFsdWUiIDx0eXBlIDE0MCBzdHJ1Y3QgeyBOYW1lIDx0eXBlIC0xNj47IFZhbCA8dHlwZSAtND47IH0+Pj4+OyB9PgogZnVuYyAodCA8dHlwZSAxNDEgKjx0eXBlIDEzNT4+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKPjsKdHlwZSA8dHlwZSAxMzk+Owp0eXBlIDx0eXBlIDkwPjsKdHlwZSA8dHlwZSAxNDIgIkZsb2F0VHlwZSIgPHR5cGUgMTQzIHN0cnVjdCB7ID8gPHR5cGUgMz47IH0+PjsKdHlwZSA8dHlwZSAxNDQgIkZ1bmNUeXBlIiA8dHlwZSAxNDUgc3RydWN0IHsgPyA8dHlwZSA1PjsgUmV0dXJuVHlwZSA8dHlwZSAxMT47IFBhcmFtVHlwZSA8dHlwZSAxNDYgW10gPHR5cGUgMTE+PjsgfT4KIGZ1bmMgKHQgPHR5cGUgMTQ3ICo8dHlwZSAxNDQ+PikgU3RyaW5nICgpIDx0eXBlIC0xNj47Cj47CnR5cGUgPHR5cGUgMTQ4ICJJbnRUeXBlIiA8dHlwZSAxNDkgc3RydWN0IHsgPyA8dHlwZSAzPjsgfT4+Owp0eXBlIDx0eXBlIDY1PjsKY29uc3QgTGluZUFkdmFuY2VMaW5lID0gMyA7CmNvbnN0IExpbmVBZHZhbmNlUEMgPSAyIDsKY29uc3QgTGluZUNvbnN0QWRkUEMgPSA4IDsKY29uc3QgTGluZUNvcHkgPSAxIDsKY29uc3QgTGluZUV4dERlZmluZUZpbGUgPSAzIDsKY29uc3QgTGluZUV4dEVuZFNlcXVlbmNlID0gMSA7CmNvbnN0IExpbmVFeHRTZXRBZGRyZXNzID0gMiA7CmNvbnN0IExpbmVFeHRTZXREaXNjcmltaW5hdG9yID0gNCA7CmNvbnN0IExpbmVFeHRlbmRlZE9wID0gMCA7CmNvbnN0IExpbmVGaXhlZEFkdmFuY2VQQyA9IDkgOwpjb25zdCBMaW5lTmVnYXRlU3RtdCA9IDYgOwpjb25zdCBMaW5lU2V0QmFzaWNCbG9jayA9IDcgOwpjb25zdCBMaW5lU2V0Q29sdW1uID0gNSA7CmNvbnN0IExpbmVTZXRFcGlsb2d1ZUJlZ2luID0gMTEgOwpjb25zdCBMaW5lU2V0RmlsZSA9IDQgOwpjb25zdCBMaW5lU2V0SVNBID0gMTIgOwpjb25zdCBMaW5lU2V0UHJvbG9ndWVFbmQgPSAxMCA7CmZ1bmMgTmV3IChhYmJyZXYgPHR5cGUgMTUwIFtdIDx0eXBlIC0yMD4+LCBhcmFuZ2VzIDx0eXBlIDE1MD4sIGZyYW1lIDx0eXBlIDE1MD4sIGluZm8gPHR5cGUgMTUwPiwgbGluZSA8dHlwZSAxNTA+LCBwdWJuYW1lcyA8dHlwZSAxNTA+LCByYW5nZXMgPHR5cGUgMTUwPiwgc3RyIDx0eXBlIDE1MD4pICg/IDx0eXBlIDEyNT4sID8gPHR5cGUgLTE5Pik7CnR5cGUgPHR5cGUgNTE+Owp0eXBlIDx0eXBlIDE1MSAiUHRyVHlwZSIgPHR5cGUgMTUyIHN0cnVjdCB7ID8gPHR5cGUgNT47IFR5cGUgPHR5cGUgMTE+OyB9PgogZnVuYyAodCA8dHlwZSAxNTMgKjx0eXBlIDE1MT4+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKPjsKdHlwZSA8dHlwZSAxNTQgIlF1YWxUeXBlIiA8dHlwZSAxNTUgc3RydWN0IHsgPyA8dHlwZSA1PjsgUXVhbCA8dHlwZSAtMTY+OyBUeXBlIDx0eXBlIDExPjsgfT4KIGZ1bmMgKHQgPHR5cGUgMTU2ICo8dHlwZSAxNTQ+PikgU3RyaW5nICgpIDx0eXBlIC0xNj47CiBmdW5jICh0IDx0eXBlIDE1Nj4pIFNpemUgKCkgPHR5cGUgLTQ+Owo+Owp0eXBlIDx0eXBlIDc2PjsKdHlwZSA8dHlwZSAxNTcgIlN0cnVjdEZpZWxkIiA8dHlwZSAxNTggc3RydWN0IHsgTmFtZSA8dHlwZSAtMTY+OyBUeXBlIDx0eXBlIDExPjsgQnl0ZU9mZnNldCA8dHlwZSAtND47IEJ5dGVTaXplIDx0eXBlIC00PjsgQml0T2Zmc2V0IDx0eXBlIC00PjsgQml0U2l6ZSA8dHlwZSAtND47IH0+PjsKdHlwZSA8dHlwZSAxNTkgIlN0cnVjdFR5cGUiIDx0eXBlIDE2MCBzdHJ1Y3QgeyA/IDx0eXBlIDU+OyBTdHJ1Y3ROYW1lIDx0eXBlIC0xNj47IEtpbmQgPHR5cGUgLTE2PjsgRmllbGQgPHR5cGUgMTYxIFtdIDx0eXBlIDE2MiAqPHR5cGUgMTU3Pj4+OyBJbmNvbXBsZXRlIDx0eXBlIC0xNT47IH0+CiBmdW5jICh0IDx0eXBlIDE2MyAqPHR5cGUgMTU5Pj4pIFN0cmluZyAoKSA8dHlwZSAtMTY+OwogZnVuYyAodCA8dHlwZSAxNjM+KSBEZWZuICgpIDx0eXBlIC0xNj47Cj47CnR5cGUgPHR5cGUgMzc+Owpjb25zdCBUYWdBY2Nlc3NEZWNsYXJhdGlvbiA8dHlwZSAzNz4gPSAzNSA7CmNvbnN0IFRhZ0FycmF5VHlwZSA8dHlwZSAzNz4gPSAxIDsKY29uc3QgVGFnQmFzZVR5cGUgPHR5cGUgMzc+ID0gMzYgOwpjb25zdCBUYWdDYXRjaER3YXJmQmxvY2sgPHR5cGUgMzc+ID0gMzcgOwpjb25zdCBUYWdDbGFzc1R5cGUgPHR5cGUgMzc+ID0gMiA7CmNvbnN0IFRhZ0NvbW1vbkR3YXJmQmxvY2sgPHR5cGUgMzc+ID0gMjYgOwpjb25zdCBUYWdDb21tb25JbmNsdXNpb24gPHR5cGUgMzc+ID0gMjcgOwpjb25zdCBUYWdDb21waWxlVW5pdCA8dHlwZSAzNz4gPSAxNyA7CmNvbnN0IFRhZ0NvbmRpdGlvbiA8dHlwZSAzNz4gPSA2MyA7CmNvbnN0IFRhZ0NvbnN0VHlwZSA8dHlwZSAzNz4gPSAzOCA7CmNvbnN0IFRhZ0NvbnN0YW50IDx0eXBlIDM3PiA9IDM5IDsKY29uc3QgVGFnRHdhcmZQcm9jZWR1cmUgPHR5cGUgMzc+ID0gNTQgOwpjb25zdCBUYWdFbnRyeVBvaW50IDx0eXBlIDM3PiA9IDMgOwpjb25zdCBUYWdFbnVtZXJhdGlvblR5cGUgPHR5cGUgMzc+ID0gNCA7CmNvbnN0IFRhZ0VudW1lcmF0b3IgPHR5cGUgMzc+ID0gNDAgOwpjb25zdCBUYWdGaWxlVHlwZSA8dHlwZSAzNz4gPSA0MSA7CmNvbnN0IFRhZ0Zvcm1hbFBhcmFtZXRlciA8dHlwZSAzNz4gPSA1IDsKY29uc3QgVGFnRnJpZW5kIDx0eXBlIDM3PiA9IDQyIDsKY29uc3QgVGFnSW1wb3J0ZWREZWNsYXJhdGlvbiA8dHlwZSAzNz4gPSA4IDsKY29uc3QgVGFnSW1wb3J0ZWRNb2R1bGUgPHR5cGUgMzc+ID0gNTggOwpjb25zdCBUYWdJbXBvcnRlZFVuaXQgPHR5cGUgMzc+ID0gNjEgOwpjb25zdCBUYWdJbmhlcml0YW5jZSA8dHlwZSAzNz4gPSAyOCA7CmNvbnN0IFRhZ0lubGluZWRTdWJyb3V0aW5lIDx0eXBlIDM3PiA9IDI5IDsKY29uc3QgVGFnSW50ZXJmYWNlVHlwZSA8dHlwZSAzNz4gPSA1NiA7CmNvbnN0IFRhZ0xhYmVsIDx0eXBlIDM3PiA9IDEwIDsKY29uc3QgVGFnTGV4RHdhcmZCbG9jayA8dHlwZSAzNz4gPSAxMSA7CmNvbnN0IFRhZ01lbWJlciA8dHlwZSAzNz4gPSAxMyA7CmNvbnN0IFRhZ01vZHVsZSA8dHlwZSAzNz4gPSAzMCA7CmNvbnN0IFRhZ011dGFibGVUeXBlIDx0eXBlIDM3PiA9IDYyIDsKY29uc3QgVGFnTmFtZWxpc3QgPHR5cGUgMzc+ID0gNDMgOwpjb25zdCBUYWdOYW1lbGlzdEl0ZW0gPHR5cGUgMzc+ID0gNDQgOwpjb25zdCBUYWdOYW1lc3BhY2UgPHR5cGUgMzc+ID0gNTcgOwpjb25zdCBUYWdQYWNrZWRUeXBlIDx0eXBlIDM3PiA9IDQ1IDsKY29uc3QgVGFnUGFydGlhbFVuaXQgPHR5cGUgMzc+ID0gNjAgOwpjb25zdCBUYWdQb2ludGVyVHlwZSA8dHlwZSAzNz4gPSAxNSA7CmNvbnN0IFRhZ1B0clRvTWVtYmVyVHlwZSA8dHlwZSAzNz4gPSAzMSA7CmNvbnN0IFRhZ1JlZmVyZW5jZVR5cGUgPHR5cGUgMzc+ID0gMTYgOwpjb25zdCBUYWdSZXN0cmljdFR5cGUgPHR5cGUgMzc+ID0gNTUgOwpjb25zdCBUYWdSdmFsdWVSZWZlcmVuY2VUeXBlIDx0eXBlIDM3PiA9IDY2IDsKY29uc3QgVGFnU2V0VHlwZSA8dHlwZSAzNz4gPSAzMiA7CmNvbnN0IFRhZ1NoYXJlZFR5cGUgPHR5cGUgMzc+ID0gNjQgOwpjb25zdCBUYWdTdHJpbmdUeXBlIDx0eXBlIDM3PiA9IDE4IDsKY29uc3QgVGFnU3RydWN0VHlwZSA8dHlwZSAzNz4gPSAxOSA7CmNvbnN0IFRhZ1N1YnByb2dyYW0gPHR5cGUgMzc+ID0gNDYgOwpjb25zdCBUYWdTdWJyYW5nZVR5cGUgPHR5cGUgMzc+ID0gMzMgOwpjb25zdCBUYWdTdWJyb3V0aW5lVHlwZSA8dHlwZSAzNz4gPSAyMSA7CmNvbnN0IFRhZ1RlbXBsYXRlQWxpYXMgPHR5cGUgMzc+ID0gNjcgOwpjb25zdCBUYWdUZW1wbGF0ZVR5cGVQYXJhbWV0ZXIgPHR5cGUgMzc+ID0gNDcgOwpjb25zdCBUYWdUZW1wbGF0ZVZhbHVlUGFyYW1ldGVyIDx0eXBlIDM3PiA9IDQ4IDsKY29uc3QgVGFnVGhyb3duVHlwZSA8dHlwZSAzNz4gPSA0OSA7CmNvbnN0IFRhZ1RyeUR3YXJmQmxvY2sgPHR5cGUgMzc+ID0gNTAgOwpjb25zdCBUYWdUeXBlVW5pdCA8dHlwZSAzNz4gPSA2NSA7CmNvbnN0IFRhZ1R5cGVkZWYgPHR5cGUgMzc+ID0gMjIgOwpjb25zdCBUYWdVbmlvblR5cGUgPHR5cGUgMzc+ID0gMjMgOwpjb25zdCBUYWdVbnNwZWNpZmllZFBhcmFtZXRlcnMgPHR5cGUgMzc+ID0gMjQgOwpjb25zdCBUYWdVbnNwZWNpZmllZFR5cGUgPHR5cGUgMzc+ID0gNTkgOwpjb25zdCBUYWdWYXJpYWJsZSA8dHlwZSAzNz4gPSA1MiA7CmNvbnN0IFRhZ1ZhcmlhbnQgPHR5cGUgMzc+ID0gMjUgOwpjb25zdCBUYWdWYXJpYW50UGFydCA8dHlwZSAzNz4gPSA1MSA7CmNvbnN0IFRhZ1ZvbGF0aWxlVHlwZSA8dHlwZSAzNz4gPSA1MyA7CmNvbnN0IFRhZ1dpdGhTdG10IDx0eXBlIDM3PiA9IDM0IDsKdHlwZSA8dHlwZSAxMT47CnR5cGUgPHR5cGUgMTY0ICJUeXBlZGVmVHlwZSIgPHR5cGUgMTY1IHN0cnVjdCB7ID8gPHR5cGUgNT47IFR5cGUgPHR5cGUgMTE+OyB9PgogZnVuYyAodCA8dHlwZSAxNjYgKjx0eXBlIDE2ND4+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKHQgPHR5cGUgMTY2PikgU2l6ZSAoKSA8dHlwZSAtND47Cj47CnR5cGUgPHR5cGUgMTY3ICJVY2hhclR5cGUiIDx0eXBlIDE2OCBzdHJ1Y3QgeyA/IDx0eXBlIDM+OyB9Pj47CnR5cGUgPHR5cGUgMTY5ICJVaW50VHlwZSIgPHR5cGUgMTcwIHN0cnVjdCB7ID8gPHR5cGUgMz47IH0+PjsKdHlwZSA8dHlwZSAxNzEgIlVuc3BlY2lmaWVkVHlwZSIgPHR5cGUgMTcyIHN0cnVjdCB7ID8gPHR5cGUgMz47IH0+PjsKdHlwZSA8dHlwZSAxNzMgIlZvaWRUeXBlIiA8dHlwZSAxNzQgc3RydWN0IHsgPyA8dHlwZSA1PjsgfT4KIGZ1bmMgKHQgPHR5cGUgMTc1ICo8dHlwZSAxNzM+PikgU3RyaW5nICgpIDx0eXBlIC0xNj47Cj47CmNoZWNrc3VtIENBMjBENTQ3N0REODgyMzUxRjcwNEEwOUI4QjZFMUMwMUFDMzU0RjQ7CgAuc3ltdGFiAC5zdHJ0YWIALnNoc3RydGFiAC5nb19leHBvcnQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsAAAABAAAAAAAAAAAAAAA0AAAAhkMAAAAAAAAAAAAAAQAAAAAAAAARAAAAAwAAAAAAAAAAAAAAukMAACYAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAAOBDAAAgAAAABAAAAAIAAAAEAAAAEAAAAAkAAAADAAAAAAAAAAAAAAAARAAAAQAAAAAAAAAAAAAAAQAAAAAAAAA=