f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAAAkQwAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIG1hY2hvOwpwa2dwYXRoIGRlYnVnL21hY2hvOwpwcmlvcml0eSA4OwppbXBvcnQgYnl0ZXMgYnl0ZXMgImJ5dGVzIjsKaW1wb3J0IGR3YXJmIGRlYnVnL2R3YXJmICJkZWJ1Zy9kd2FyZiI7CmltcG9ydCBiaW5hcnkgZW5jb2RpbmcvYmluYXJ5ICJlbmNvZGluZy9iaW5hcnkiOwppbXBvcnQgZm10IGZtdCAiZm10IjsKaW1wb3J0IGlvIGlvICJpbyI7CmltcG9ydCBvcyBvcyAib3MiOwppbXBvcnQgc3RyY29udiBzdHJjb252ICJzdHJjb252IjsKaW5pdCBtYWNobyBkZWJ1Z19tYWNoby4uaW1wb3J0IDggbWF0aCBtYXRoLi5pbXBvcnQgMSBydW50aW1lIHJ1bnRpbWUuLmltcG9ydCAxIHVuaWNvZGUgdW5pY29kZS4uaW1wb3J0IDEgc3RyY29udiBzdHJjb252Li5pbXBvcnQgMiBzeW5jIHN5bmMuLmltcG9ydCAyIGlvIGlvLi5pbXBvcnQgMyByZWZsZWN0IHJlZmxlY3QuLmltcG9ydCAzIHN5c2NhbGwgc3lzY2FsbC4uaW1wb3J0IDMgYmluYXJ5IGVuY29kaW5nX2JpbmFyeS4uaW1wb3J0IDQgYnl0ZXMgYnl0ZXMuLmltcG9ydCA0IHRpbWUgdGltZS4uaW1wb3J0IDQgb3Mgb3MuLmltcG9ydCA1IGZpbGVwYXRoIHBhdGhfZmlsZXBhdGguLmltcG9ydCA2IGZtdCBmbXQuLmltcG9ydCA2IGR3YXJmIGRlYnVnX2R3YXJmLi5pbXBvcnQgNzsKdHlwZSA8dHlwZSAxICJDcHUiIDx0eXBlIC03PgogZnVuYyAoaSA8dHlwZSAxPikgU3RyaW5nICgpIDx0eXBlIC0xNj47CiBmdW5jIChpIDx0eXBlIDE+KSBHb1N0cmluZyAoKSA8dHlwZSAtMTY+Owo+Owpjb25zdCBDcHUzODYgPHR5cGUgMT4gPSA3IDsKY29uc3QgQ3B1QW1kNjQgPHR5cGUgMT4gPSAxNjc3NzIyMyA7CmNvbnN0IENwdUFybSA8dHlwZSAxPiA9IDEyIDsKY29uc3QgQ3B1UHBjIDx0eXBlIDE+ID0gMTggOwpjb25zdCBDcHVQcGM2NCA8dHlwZSAxPiA9IDE2Nzc3MjM0IDsKdHlwZSA8dHlwZSAyICJEeWxpYiIgPHR5cGUgMyBzdHJ1Y3QgeyA/IDx0eXBlIDQgIkxvYWRCeXRlcyIgPHR5cGUgNSBbXSA8dHlwZSAtMjA+PgogZnVuYyAoYiA8dHlwZSA0PikgUmF3ICgpIDx0eXBlIDYgW10gPHR5cGUgLTIwPj47Cj47IE5hbWUgPHR5cGUgLTE2PjsgVGltZSA8dHlwZSAtNz47IEN1cnJlbnRWZXJzaW9uIDx0eXBlIC03PjsgQ29tcGF0VmVyc2lvbiA8dHlwZSAtNz47IH0+PjsKdHlwZSA8dHlwZSA3ICJEeWxpYkNtZCIgPHR5cGUgOCBzdHJ1Y3QgeyBDbWQgPHR5cGUgOSAiTG9hZENtZCIgPHR5cGUgLTc+CiBmdW5jIChpIDx0eXBlIDk+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKGkgPHR5cGUgOT4pIEdvU3RyaW5nICgpIDx0eXBlIC0xNj47Cj47IExlbiA8dHlwZSAtNz47IE5hbWUgPHR5cGUgLTc+OyBUaW1lIDx0eXBlIC03PjsgQ3VycmVudFZlcnNpb24gPHR5cGUgLTc+OyBDb21wYXRWZXJzaW9uIDx0eXBlIC03PjsgfT4+Owp0eXBlIDx0eXBlIDEwICJEeXN5bXRhYiIgPHR5cGUgMTEgc3RydWN0IHsgPyA8dHlwZSA0PjsgPyA8dHlwZSAxMiAiRHlzeW10YWJDbWQiIDx0eXBlIDEzIHN0cnVjdCB7IENtZCA8dHlwZSA5PjsgTGVuIDx0eXBlIC03PjsgSWxvY2Fsc3ltIDx0eXBlIC03PjsgTmxvY2Fsc3ltIDx0eXBlIC03PjsgSWV4dGRlZnN5bSA8dHlwZSAtNz47IE5leHRkZWZzeW0gPHR5cGUgLTc+OyBJdW5kZWZzeW0gPHR5cGUgLTc+OyBOdW5kZWZzeW0gPHR5cGUgLTc+OyBUb2NvZmZzZXQgPHR5cGUgLTc+OyBOdG9jIDx0eXBlIC03PjsgTW9kdGFib2ZmIDx0eXBlIC03PjsgTm1vZHRhYiA8dHlwZSAtNz47IEV4dHJlZnN5bW9mZiA8dHlwZSAtNz47IE5leHRyZWZzeW1zIDx0eXBlIC03PjsgSW5kaXJlY3RzeW1vZmYgPHR5cGUgLTc+OyBOaW5kaXJlY3RzeW1zIDx0eXBlIC03PjsgRXh0cmVsb2ZmIDx0eXBlIC03PjsgTmV4dHJlbCA8dHlwZSAtNz47IExvY3JlbG9mZiA8dHlwZSAtNz47IE5sb2NyZWwgPHR5cGUgLTc+OyB9Pj47IEluZGlyZWN0U3ltcyA8dHlwZSAxNCBbXSA8dHlwZSAtNz4+OyB9Pj47CnR5cGUgPHR5cGUgMTI+Owp2YXIgRXJyTm90RmF0IDx0eXBlIDE1ICo8dHlwZSAxNiAiRm9ybWF0RXJyb3IiIDx0eXBlIDE3IHN0cnVjdCB7IC5kZWJ1Zy9tYWNoby5vZmYgPHR5cGUgLTQ+OyAuZGVidWcvbWFjaG8ubXNnIDx0eXBlIC0xNj47IC5kZWJ1Zy9tYWNoby52YWwgPHR5cGUgMTggaW50ZXJmYWNlIHsgfT47IH0+CiBmdW5jIChlIDx0eXBlIDE5ICo8dHlwZSAxNj4+KSBFcnJvciAoKSA8dHlwZSAtMTY+Owo+PjsKdHlwZSA8dHlwZSAyMCAiRmF0QXJjaCIgPHR5cGUgMjEgc3RydWN0IHsgPyA8dHlwZSAyMiAiRmF0QXJjaEhlYWRlciIgPHR5cGUgMjMgc3RydWN0IHsgQ3B1IDx0eXBlIDE+OyBTdWJDcHUgPHR5cGUgLTc+OyBPZmZzZXQgPHR5cGUgLTc+OyBTaXplIDx0eXBlIC03PjsgQWxpZ24gPHR5cGUgLTc+OyB9Pj47ID8gPHR5cGUgMjQgKjx0eXBlIDI1ICJGaWxlIiA8dHlwZSAyNiBzdHJ1Y3QgeyA/IDx0eXBlIDI3ICJGaWxlSGVhZGVyIiA8dHlwZSAyOCBzdHJ1Y3QgeyBNYWdpYyA8dHlwZSAtNz47IENwdSA8dHlwZSAxPjsgU3ViQ3B1IDx0eXBlIC03PjsgVHlwZSA8dHlwZSAyOSAiVHlwZSIgPHR5cGUgLTc+PjsgTmNtZCA8dHlwZSAtNz47IENtZHN6IDx0eXBlIC03PjsgRmxhZ3MgPHR5cGUgLTc+OyB9Pj47IEJ5dGVPcmRlciA8dHlwZSAzMCAiZW5jb2RpbmcvYmluYXJ5LkJ5dGVPcmRlciIgPHR5cGUgMzEgaW50ZXJmYWNlIHsgVWludDE2ICg/IDx0eXBlIDMyIFtdIDx0eXBlIC0yMD4+KSA8dHlwZSAtNj47IFVpbnQzMiAoPyA8dHlwZSAzMyBbXSA8dHlwZSAtMjA+PikgPHR5cGUgLTc+OyBVaW50NjQgKD8gPHR5cGUgMzQgW10gPHR5cGUgLTIwPj4pIDx0eXBlIC04PjsgUHV0VWludDE2ICg/IDx0eXBlIDM1IFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC02Pik7IFB1dFVpbnQzMiAoPyA8dHlwZSAzNiBbXSA8dHlwZSAtMjA+PiwgPyA8dHlwZSAtNz4pOyBQdXRVaW50NjQgKD8gPHR5cGUgMzcgW10gPHR5cGUgLTIwPj4sID8gPHR5cGUgLTg+KTsgU3RyaW5nICgpIDx0eXBlIC0xNj47IH0+PjsgTG9hZHMgPHR5cGUgMzggW10gPHR5cGUgMzkgIkxvYWQiIDx0eXBlIDQwIGludGVyZmFjZSB7IFJhdyAoKSA8dHlwZSA0MSBbXSA8dHlwZSAtMjA+PjsgfT4+PjsgU2VjdGlvbnMgPHR5cGUgNDIgW10gPHR5cGUgNDMgKjx0eXBlIDQ0ICJTZWN0aW9uIiA8dHlwZSA0NSBzdHJ1Y3QgeyA/IDx0eXBlIDQ2ICJTZWN0aW9uSGVhZGVyIiA8dHlwZSA0NyBzdHJ1Y3QgeyBOYW1lIDx0eXBlIC0xNj47IFNlZyA8dHlwZSAtMTY+OyBBZGRyIDx0eXBlIC04PjsgU2l6ZSA8dHlwZSAtOD47IE9mZnNldCA8dHlwZSAtNz47IEFsaWduIDx0eXBlIC03PjsgUmVsb2ZmIDx0eXBlIC03PjsgTnJlbG9jIDx0eXBlIC03PjsgRmxhZ3MgPHR5cGUgLTc+OyB9Pj47ID8gPHR5cGUgNDggImlvLlJlYWRlckF0IiA8dHlwZSA0OSBpbnRlcmZhY2UgeyBSZWFkQXQgKHAgPHR5cGUgNTAgW10gPHR5cGUgLTIwPj4sIG9mZiA8dHlwZSAtND4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsgfT4+OyAuZGVidWcvbWFjaG8uc3IgPHR5cGUgNTEgKjx0eXBlIDUyICJpby5TZWN0aW9uUmVhZGVyIiA8dHlwZSA1MyBzdHJ1Y3QgeyAuaW8uciA8dHlwZSA0OD47IC5pby5iYXNlIDx0eXBlIC00PjsgLmlvLm9mZiA8dHlwZSAtND47IC5pby5saW1pdCA8dHlwZSAtND47IH0+CiBmdW5jIChzIDx0eXBlIDU0ICo8dHlwZSA1Mj4+KSBTZWVrIChvZmZzZXQgPHR5cGUgLTQ+LCB3aGVuY2UgPHR5cGUgLTExPikgKD8gPHR5cGUgLTQ+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAocyA8dHlwZSA1ND4pIFJlYWRBdCAocCA8dHlwZSA1NSBbXSA8dHlwZSAtMjA+Piwgb2ZmIDx0eXBlIC00PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAocyA8dHlwZSA1ND4pIFJlYWQgKHAgPHR5cGUgNTYgW10gPHR5cGUgLTIwPj4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKHMgPHR5cGUgNTQ+KSBTaXplICgpIDx0eXBlIC00PjsKPj47IH0+CiBmdW5jIChzIDx0eXBlIDU3ICo8dHlwZSA0ND4+KSBEYXRhICgpICg/IDx0eXBlIDU4IFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAocyA8dHlwZSA1Nz4pIE9wZW4gKCkgPHR5cGUgNTkgImlvLlJlYWRTZWVrZXIiIDx0eXBlIDYwIGludGVyZmFjZSB7ID8gPHR5cGUgNjEgImlvLlJlYWRlciIgPHR5cGUgNjIgaW50ZXJmYWNlIHsgUmVhZCAocCA8dHlwZSA2MyBbXSA8dHlwZSAtMjA+PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOyB9Pj47ID8gPHR5cGUgNjQgImlvLlNlZWtlciIgPHR5cGUgNjUgaW50ZXJmYWNlIHsgU2VlayAob2Zmc2V0IDx0eXBlIC00Piwgd2hlbmNlIDx0eXBlIC0xMT4pICg/IDx0eXBlIC00PiwgPyA8dHlwZSAtMTk+KTsgfT4+OyB9Pj47Cj4+PjsgU3ltdGFiIDx0eXBlIDY2ICo8dHlwZSA2NyAiU3ltdGFiIiA8dHlwZSA2OCBzdHJ1Y3QgeyA/IDx0eXBlIDQ+OyA/IDx0eXBlIDY5ICJTeW10YWJDbWQiIDx0eXBlIDcwIHN0cnVjdCB7IENtZCA8dHlwZSA5PjsgTGVuIDx0eXBlIC03PjsgU3ltb2ZmIDx0eXBlIC03PjsgTnN5bXMgPHR5cGUgLTc+OyBTdHJvZmYgPHR5cGUgLTc+OyBTdHJzaXplIDx0eXBlIC03PjsgfT4+OyBTeW1zIDx0eXBlIDcxIFtdIDx0eXBlIDcyICJTeW1ib2wiIDx0eXBlIDczIHN0cnVjdCB7IE5hbWUgPHR5cGUgLTE2PjsgVHlwZSA8dHlwZSAtNT47IFNlY3QgPHR5cGUgLTU+OyBEZXNjIDx0eXBlIC02PjsgVmFsdWUgPHR5cGUgLTg+OyB9Pj4+OyB9Pj4+OyBEeXN5bXRhYiA8dHlwZSA3NCAqPHR5cGUgMTA+PjsgLmRlYnVnL21hY2hvLmNsb3NlciA8dHlwZSA3NSAiaW8uQ2xvc2VyIiA8dHlwZSA3NiBpbnRlcmZhY2UgeyBDbG9zZSAoKSA8dHlwZSAtMTk+OyB9Pj47IH0+CiBmdW5jIChmIDx0eXBlIDc3ICo8dHlwZSAyNT4+KSBDbG9zZSAoKSA8dHlwZSAtMTk+OwogZnVuYyAoZiA8dHlwZSA3Nz4pIC5kZWJ1Zy9tYWNoby5wYXJzZVN5bXRhYiAoc3ltZGF0IDx0eXBlIDc4IFtdIDx0eXBlIC0yMD4+LCBzdHJ0YWIgPHR5cGUgNzg+LCBjbWRkYXQgPHR5cGUgNzg+LCBoZHIgPHR5cGUgNzkgKjx0eXBlIDY5Pj4sIG9mZnNldCA8dHlwZSAtND4pICg/IDx0eXBlIDgwICo8dHlwZSA2Nz4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAoZiA8dHlwZSA3Nz4pIC5kZWJ1Zy9tYWNoby5wdXNoU2VjdGlvbiAoc2ggPHR5cGUgNTc+LCByIDx0eXBlIDQ4Pik7CiBmdW5jIChmIDx0eXBlIDc3PikgU2VnbWVudCAobmFtZSA8dHlwZSAtMTY+KSA8dHlwZSA4MSAqPHR5cGUgODIgIlNlZ21lbnQiIDx0eXBlIDgzIHN0cnVjdCB7ID8gPHR5cGUgND47ID8gPHR5cGUgODQgIlNlZ21lbnRIZWFkZXIiIDx0eXBlIDg1IHN0cnVjdCB7IENtZCA8dHlwZSA5PjsgTGVuIDx0eXBlIC03PjsgTmFtZSA8dHlwZSAtMTY+OyBBZGRyIDx0eXBlIC04PjsgTWVtc3ogPHR5cGUgLTg+OyBPZmZzZXQgPHR5cGUgLTg+OyBGaWxlc3ogPHR5cGUgLTg+OyBNYXhwcm90IDx0eXBlIC03PjsgUHJvdCA8dHlwZSAtNz47IE5zZWN0IDx0eXBlIC03PjsgRmxhZyA8dHlwZSAtNz47IH0+PjsgPyA8dHlwZSA0OD47IC5kZWJ1Zy9tYWNoby5zciA8dHlwZSA1MT47IH0+CiBmdW5jIChzIDx0eXBlIDg2ICo8dHlwZSA4Mj4+KSBEYXRhICgpICg/IDx0eXBlIDg3IFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAocyA8dHlwZSA4Nj4pIE9wZW4gKCkgPHR5cGUgNTk+Owo+PjsKIGZ1bmMgKGYgPHR5cGUgNzc+KSBTZWN0aW9uIChuYW1lIDx0eXBlIC0xNj4pIDx0eXBlIDU3PjsKIGZ1bmMgKGYgPHR5cGUgNzc+KSBEV0FSRiAoKSAoPyA8dHlwZSA4OCAqPHR5cGUgODkgImRlYnVnL2R3YXJmLkRhdGEiIDx0eXBlIDkwIHN0cnVjdCB7IC5kZWJ1Zy9kd2FyZi5hYmJyZXYgPHR5cGUgOTEgW10gPHR5cGUgLTIwPj47IC5kZWJ1Zy9kd2FyZi5hcmFuZ2VzIDx0eXBlIDkyIFtdIDx0eXBlIC0yMD4+OyAuZGVidWcvZHdhcmYuZnJhbWUgPHR5cGUgOTMgW10gPHR5cGUgLTIwPj47IC5kZWJ1Zy9kd2FyZi5pbmZvIDx0eXBlIDk0IFtdIDx0eXBlIC0yMD4+OyAuZGVidWcvZHdhcmYubGluZSA8dHlwZSA5NSBbXSA8dHlwZSAtMjA+PjsgLmRlYnVnL2R3YXJmLnB1Ym5hbWVzIDx0eXBlIDk2IFtdIDx0eXBlIC0yMD4+OyAuZGVidWcvZHdhcmYucmFuZ2VzIDx0eXBlIDk3IFtdIDx0eXBlIC0yMD4+OyAuZGVidWcvZHdhcmYuc3RyIDx0eXBlIDk4IFtdIDx0eXBlIC0yMD4+OyAuZGVidWcvZHdhcmYuYWJicmV2Q2FjaGUgPHR5cGUgOTkgbWFwIFs8dHlwZSAtNz5dIDx0eXBlIDEwMCAiLmRlYnVnL2R3YXJmLmFiYnJldlRhYmxlIiA8dHlwZSAxMDEgbWFwIFs8dHlwZSAtNz5dIDx0eXBlIDEwMiAiLmRlYnVnL2R3YXJmLmFiYnJldiIgPHR5cGUgMTAzIHN0cnVjdCB7IC5kZWJ1Zy9kd2FyZi50YWcgPHR5cGUgMTA0ICJkZWJ1Zy9kd2FyZi5UYWciIDx0eXBlIC03PgogZnVuYyAodCA8dHlwZSAxMDQ+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKHQgPHR5cGUgMTA0PikgR29TdHJpbmcgKCkgPHR5cGUgLTE2PjsKPjsgLmRlYnVnL2R3YXJmLmNoaWxkcmVuIDx0eXBlIC0xNT47IC5kZWJ1Zy9kd2FyZi5maWVsZCA8dHlwZSAxMDUgW10gPHR5cGUgMTA2ICIuZGVidWcvZHdhcmYuYWZpZWxkIiA8dHlwZSAxMDcgc3RydWN0IHsgLmRlYnVnL2R3YXJmLmF0dHIgPHR5cGUgMTA4ICJkZWJ1Zy9kd2FyZi5BdHRyIiA8dHlwZSAtNz4KIGZ1bmMgKGEgPHR5cGUgMTA4PikgU3RyaW5nICgpIDx0eXBlIC0xNj47CiBmdW5jIChhIDx0eXBlIDEwOD4pIEdvU3RyaW5nICgpIDx0eXBlIC0xNj47Cj47IC5kZWJ1Zy9kd2FyZi5mbXQgPHR5cGUgMTA5ICIuZGVidWcvZHdhcmYuZm9ybWF0IiA8dHlwZSAtNz4+OyB9Pj4+OyB9Pj4+Pj47IC5kZWJ1Zy9kd2FyZi5vcmRlciA8dHlwZSAzMD47IC5kZWJ1Zy9kd2FyZi50eXBlQ2FjaGUgPHR5cGUgMTEwIG1hcCBbPHR5cGUgMTExICJkZWJ1Zy9kd2FyZi5PZmZzZXQiIDx0eXBlIC03Pj5dIDx0eXBlIDExMiAiZGVidWcvZHdhcmYuVHlwZSIgPHR5cGUgMTEzIGludGVyZmFjZSB7IENvbW1vbiAoKSA8dHlwZSAxMTQgKjx0eXBlIDExNSAiZGVidWcvZHdhcmYuQ29tbW9uVHlwZSIgPHR5cGUgMTE2IHN0cnVjdCB7IEJ5dGVTaXplIDx0eXBlIC00PjsgTmFtZSA8dHlwZSAtMTY+OyB9PgogZnVuYyAoYyA8dHlwZSAxMTcgKjx0eXBlIDExNT4+KSBDb21tb24gKCkgPHR5cGUgMTE3PjsKIGZ1bmMgKGMgPHR5cGUgMTE3PikgU2l6ZSAoKSA8dHlwZSAtND47Cj4+OyBTdHJpbmcgKCkgPHR5cGUgLTE2PjsgU2l6ZSAoKSA8dHlwZSAtND47IH0+Pj47IC5kZWJ1Zy9kd2FyZi50eXBlU2lncyA8dHlwZSAxMTggbWFwIFs8dHlwZSAtOD5dIDx0eXBlIDExOSAqPHR5cGUgMTIwICIuZGVidWcvZHdhcmYudHlwZVVuaXQiIDx0eXBlIDEyMSBzdHJ1Y3QgeyA/IDx0eXBlIDEyMiAiLmRlYnVnL2R3YXJmLnVuaXQiIDx0eXBlIDEyMyBzdHJ1Y3QgeyAuZGVidWcvZHdhcmYuYmFzZSA8dHlwZSAxMTE+OyAuZGVidWcvZHdhcmYub2ZmIDx0eXBlIDExMT47IC5kZWJ1Zy9kd2FyZi5saW5lb2ZmIDx0eXBlIDExMT47IC5kZWJ1Zy9kd2FyZi5kYXRhIDx0eXBlIDEyNCBbXSA8dHlwZSAtMjA+PjsgLmRlYnVnL2R3YXJmLmF0YWJsZSA8dHlwZSAxMDA+OyAuZGVidWcvZHdhcmYuYXNpemUgPHR5cGUgLTExPjsgLmRlYnVnL2R3YXJmLnZlcnMgPHR5cGUgLTExPjsgLmRlYnVnL2R3YXJmLmlzNjQgPHR5cGUgLTE1PjsgLmRlYnVnL2R3YXJmLmRpciA8dHlwZSAtMTY+OyAuZGVidWcvZHdhcmYucGMgPHR5cGUgMTI1IFtdIDx0eXBlIDEyNiAiLmRlYnVnL2R3YXJmLmFkZHJSYW5nZSIgPHR5cGUgMTI3IHN0cnVjdCB7IC5kZWJ1Zy9kd2FyZi5sb3cgPHR5cGUgLTg+OyAuZGVidWcvZHdhcmYuaGlnaCA8dHlwZSAtOD47IH0+Pj47IC5kZWJ1Zy9kd2FyZi5saW5lcyA8dHlwZSAxMjggW10gPHR5cGUgMTI5ICIuZGVidWcvZHdhcmYubWFwTGluZUluZm8iIDx0eXBlIDEzMCBzdHJ1Y3QgeyAuZGVidWcvZHdhcmYubGluZSA8dHlwZSAxMzEgImRlYnVnL2R3YXJmLkxpbmUiIDx0eXBlIDEzMiBzdHJ1Y3QgeyBGaWxlbmFtZSA8dHlwZSAtMTY+OyBPcEluZGV4IDx0eXBlIC0xMT47IExpbmUgPHR5cGUgLTExPjsgQ29sdW1uIDx0eXBlIC0xMT47IElTQSA8dHlwZSAtMTE+OyBEaXNjcmltaW5hdG9yIDx0eXBlIC0xMT47IFN0bXQgPHR5cGUgLTE1PjsgQmxvY2sgPHR5cGUgLTE1PjsgRW5kUHJvbG9ndWUgPHR5cGUgLTE1PjsgQmVnaW5FcGlsb2d1ZSA8dHlwZSAtMTU+OyB9Pj47IC5kZWJ1Zy9kd2FyZi5hZGRycyA8dHlwZSAxMzMgIi5kZWJ1Zy9kd2FyZi5saW5lQWRkcnMiIDx0eXBlIDEzNCBbXSA8dHlwZSAxMzUgIi5kZWJ1Zy9kd2FyZi5vbmVMaW5lSW5mbyIgPHR5cGUgMTM2IHN0cnVjdCB7IC5kZWJ1Zy9kd2FyZi5wYyA8dHlwZSAtOD47IC5kZWJ1Zy9kd2FyZi5saW5lIDx0eXBlIC0xMT47IH0+Pj4KIGZ1bmMgKHAgPHR5cGUgMTMzPikgTGVzcyAoaSA8dHlwZSAtMTE+LCBqIDx0eXBlIC0xMT4pIDx0eXBlIC0xNT47CiBmdW5jIChwIDx0eXBlIDEzMz4pIExlbiAoKSA8dHlwZSAtMTE+OwogZnVuYyAocCA8dHlwZSAxMzM+KSBTd2FwIChpIDx0eXBlIC0xMT4sIGogPHR5cGUgLTExPik7Cj47IH0+Pj47IH0+CiBmdW5jICh1IDx0eXBlIDEzNyAqPHR5cGUgMTIyPj4pIC5kZWJ1Zy9kd2FyZi5kd2FyZjY0ICgpICg/IDx0eXBlIC0xNT4sID8gPHR5cGUgLTE1Pik7CiBmdW5jICh1IDx0eXBlIDEzNz4pIC5kZWJ1Zy9kd2FyZi5hZGRyc2l6ZSAoKSA8dHlwZSAtMTE+OwogZnVuYyAodSA8dHlwZSAxMzc+KSAuZGVidWcvZHdhcmYudmVyc2lvbiAoKSA8dHlwZSAtMTE+Owo+OyAuZGVidWcvZHdhcmYudG9mZiA8dHlwZSAxMTE+OyAuZGVidWcvZHdhcmYubmFtZSA8dHlwZSAtMTY+OyAuZGVidWcvZHdhcmYuY2FjaGUgPHR5cGUgMTEyPjsgfT4+Pj47IC5kZWJ1Zy9kd2FyZi51bml0IDx0eXBlIDEzOCBbXSA8dHlwZSAxMjI+PjsgfT4KIGZ1bmMgKGQgPHR5cGUgMTM5ICo8dHlwZSA4OT4+KSBSZWFkZXIgKCkgPHR5cGUgMTQwICo8dHlwZSAxNDEgImRlYnVnL2R3YXJmLlJlYWRlciIgPHR5cGUgMTQyIHN0cnVjdCB7IC5kZWJ1Zy9kd2FyZi5iIDx0eXBlIDE0MyAiLmRlYnVnL2R3YXJmLmJ1ZiIgPHR5cGUgMTQ0IHN0cnVjdCB7IC5kZWJ1Zy9kd2FyZi5kd2FyZiA8dHlwZSAxMzk+OyAuZGVidWcvZHdhcmYub3JkZXIgPHR5cGUgMzA+OyAuZGVidWcvZHdhcmYuZm9ybWF0IDx0eXBlIDE0NSAiLmRlYnVnL2R3YXJmLmRhdGFGb3JtYXQiIDx0eXBlIDE0NiBpbnRlcmZhY2UgeyAuZGVidWcvZHdhcmYudmVyc2lvbiAoKSA8dHlwZSAtMTE+OyAuZGVidWcvZHdhcmYuZHdhcmY2NCAoKSAoZHdhcmY2NCA8dHlwZSAtMTU+LCBpc0tub3duIDx0eXBlIC0xNT4pOyAuZGVidWcvZHdhcmYuYWRkcnNpemUgKCkgPHR5cGUgLTExPjsgfT4+OyAuZGVidWcvZHdhcmYubmFtZSA8dHlwZSAtMTY+OyAuZGVidWcvZHdhcmYub2ZmIDx0eXBlIDExMT47IC5kZWJ1Zy9kd2FyZi5kYXRhIDx0eXBlIDE0NyBbXSA8dHlwZSAtMjA+PjsgLmRlYnVnL2R3YXJmLmVyciA8dHlwZSAtMTk+OyB9PgogZnVuYyAoYiA8dHlwZSAxNDggKjx0eXBlIDE0Mz4+KSAuZGVidWcvZHdhcmYuaW50ICgpIDx0eXBlIC00PjsKIGZ1bmMgKGIgPHR5cGUgMTQ4PikgLmRlYnVnL2R3YXJmLnVpbnQzMiAoKSA8dHlwZSAtNz47CiBmdW5jIChiIDx0eXBlIDE0OD4pIC5kZWJ1Zy9kd2FyZi5lcnJvciAocyA8dHlwZSAtMTY+KTsKIGZ1bmMgKGIgPHR5cGUgMTQ4PikgLmRlYnVnL2R3YXJmLnN0cmluZyAoKSA8dHlwZSAtMTY+OwogZnVuYyAoYiA8dHlwZSAxNDg+KSAuZGVidWcvZHdhcmYuYWRkciAoKSA8dHlwZSAtOD47CiBmdW5jIChiIDx0eXBlIDE0OD4pIC5kZWJ1Zy9kd2FyZi5ieXRlcyAobiA8dHlwZSAtMTE+KSA8dHlwZSAxNDkgW10gPHR5cGUgLTIwPj47CiBmdW5jIChiIDx0eXBlIDE0OD4pIC5kZWJ1Zy9kd2FyZi5za2lwIChuIDx0eXBlIC0xMT4pOwogZnVuYyAoYiA8dHlwZSAxNDg+KSAuZGVidWcvZHdhcmYudWludDggKCkgPHR5cGUgLTU+OwogZnVuYyAoYiA8dHlwZSAxNDg+KSAuZGVidWcvZHdhcmYudWludDE2ICgpIDx0eXBlIC02PjsKIGZ1bmMgKGIgPHR5cGUgMTQ4PikgLmRlYnVnL2R3YXJmLnVpbnQ2NCAoKSA8dHlwZSAtOD47CiBmdW5jIChiIDx0eXBlIDE0OD4pIC5kZWJ1Zy9kd2FyZi52YXJpbnQgKCkgKGMgPHR5cGUgLTg+LCBiaXRzIDx0eXBlIC0xMj4pOwogZnVuYyAoYiA8dHlwZSAxNDg+KSAuZGVidWcvZHdhcmYudWludCAoKSA8dHlwZSAtOD47CiBmdW5jIChiIDx0eXBlIDE0OD4pIC5kZWJ1Zy9kd2FyZi5lbnRyeSAoYXRhYiA8dHlwZSAxMDA+LCB1YmFzZSA8dHlwZSAxMTE+KSA8dHlwZSAxNTAgKjx0eXBlIDE1MSAiZGVidWcvZHdhcmYuRW50cnkiIDx0eXBlIDE1MiBzdHJ1Y3QgeyBPZmZzZXQgPHR5cGUgMTExPjsgVGFnIDx0eXBlIDEwND47IENoaWxkcmVuIDx0eXBlIC0xNT47IEZpZWxkIDx0eXBlIDE1MyBbXSA8dHlwZSAxNTQgImRlYnVnL2R3YXJmLkZpZWxkIiA8dHlwZSAxNTUgc3RydWN0IHsgQXR0ciA8dHlwZSAxMDg+OyBWYWwgPHR5cGUgMTU2IGludGVyZmFjZSB7IH0+OyB9Pj4+OyB9PgogZnVuYyAoZSA8dHlwZSAxNTcgKjx0eXBlIDE1MT4+KSBWYWwgKGEgPHR5cGUgMTA4PikgPHR5cGUgMTU4IGludGVyZmFjZSB7IH0+Owo+PjsKPjsgLmRlYnVnL2R3YXJmLmQgPHR5cGUgMTM5PjsgLmRlYnVnL2R3YXJmLmVyciA8dHlwZSAtMTk+OyAuZGVidWcvZHdhcmYudW5pdCA8dHlwZSAtMTE+OyAuZGVidWcvZHdhcmYubGFzdENoaWxkcmVuIDx0eXBlIC0xNT47IC5kZWJ1Zy9kd2FyZi5sYXN0U2libGluZyA8dHlwZSAxMTE+OyB9PgogZnVuYyAociA8dHlwZSAxNTkgKjx0eXBlIDE0MT4+KSBTZWVrIChvZmYgPHR5cGUgMTExPik7CiBmdW5jIChyIDx0eXBlIDE1OT4pIE5leHQgKCkgKD8gPHR5cGUgMTUwPiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKHIgPHR5cGUgMTU5PikgU2tpcENoaWxkcmVuICgpOwogZnVuYyAociA8dHlwZSAxNTk+KSAuZGVidWcvZHdhcmYubWF5YmVOZXh0VW5pdCAoKTsKIGZ1bmMgKHIgPHR5cGUgMTU5PikgLmRlYnVnL2R3YXJmLm9mZnNldCAoKSA8dHlwZSAxMTE+OwogZnVuYyAociA8dHlwZSAxNTk+KSAuZGVidWcvZHdhcmYuY2xvbmUgKCkgPHR5cGUgMTYwICIuZGVidWcvZHdhcmYudHlwZVJlYWRlciIgPHR5cGUgMTYxIGludGVyZmFjZSB7IFNlZWsgKD8gPHR5cGUgMTExPik7IE5leHQgKCkgKD8gPHR5cGUgMTUwPiwgPyA8dHlwZSAtMTk+KTsgLmRlYnVnL2R3YXJmLmNsb25lICgpIDx0eXBlIDE2MD47IC5kZWJ1Zy9kd2FyZi5vZmZzZXQgKCkgPHR5cGUgMTExPjsgfT4+Owo+PjsKIGZ1bmMgKGQgPHR5cGUgMTM5PikgLmRlYnVnL2R3YXJmLnJlYWRUeXBlIChuYW1lIDx0eXBlIC0xNj4sIHIgPHR5cGUgMTYwPiwgb2ZmIDx0eXBlIDExMT4sIHR5cGVDYWNoZSA8dHlwZSAxNjIgbWFwIFs8dHlwZSAxMTE+XSA8dHlwZSAxMTI+PikgKD8gPHR5cGUgMTEyPiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKGQgPHR5cGUgMTM5PikgLmRlYnVnL2R3YXJmLnBhcnNlVHlwZXMgKG5hbWUgPHR5cGUgLTE2PiwgdHlwZXMgPHR5cGUgMTYzIFtdIDx0eXBlIC0yMD4+KSA8dHlwZSAtMTk+OwogZnVuYyAoZCA8dHlwZSAxMzk+KSAuZGVidWcvZHdhcmYuYWRkTGluZSAobGluZXMgPHR5cGUgMTY0IFtdIDx0eXBlIDEyOT4+LCBsaW5lSW5mbyA8dHlwZSAxMzE+LCBhZGRyZXNzIDx0eXBlIC04PiwgbGluZSA8dHlwZSAtMTE+LCBuZXdMaW5lSW5mbyA8dHlwZSAtMTU+KSAoPyA8dHlwZSAxNjUgW10gPHR5cGUgMTI5Pj4sID8gPHR5cGUgMTMxPiwgPyA8dHlwZSAtMTU+KTsKIGZ1bmMgKGQgPHR5cGUgMTM5PikgLmRlYnVnL2R3YXJmLnBhcnNlVW5pdHMgKCkgKD8gPHR5cGUgMTY2IFtdIDx0eXBlIDEyMj4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAoZCA8dHlwZSAxMzk+KSAuZGVidWcvZHdhcmYuZmluZExpbmUgKHUgPHR5cGUgMTM3PiwgcGMgPHR5cGUgLTg+KSAoPyA8dHlwZSAxNjcgW10gPHR5cGUgMTY4ICo8dHlwZSAxMzE+Pj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jIChkIDx0eXBlIDEzOT4pIC5kZWJ1Zy9kd2FyZi5wYXJzZUFiYnJldiAob2ZmIDx0eXBlIC03PikgKD8gPHR5cGUgMTAwPiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKGQgPHR5cGUgMTM5PikgLmRlYnVnL2R3YXJmLnJlYWRBZGRyZXNzUmFuZ2VzIChvZmYgPHR5cGUgMTExPiwgYmFzZSA8dHlwZSAtOD4sIHUgPHR5cGUgMTM3PikgPHR5cGUgLTE5PjsKIGZ1bmMgKGQgPHR5cGUgMTM5PikgLmRlYnVnL2R3YXJmLnBhcnNlTGluZSAodSA8dHlwZSAxMzc+KSA8dHlwZSAtMTk+OwogZnVuYyAoZCA8dHlwZSAxMzk+KSAuZGVidWcvZHdhcmYuc2lnVG9UeXBlIChzaWcgPHR5cGUgLTg+KSAoPyA8dHlwZSAxMTI+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAoZCA8dHlwZSAxMzk+KSAuZGVidWcvZHdhcmYucmVhZFVuaXRMaW5lIChpIDx0eXBlIC0xMT4sIHUgPHR5cGUgMTM3PikgPHR5cGUgLTE5PjsKIGZ1bmMgKGQgPHR5cGUgMTM5PikgTGluZUZvclBDIChwYyA8dHlwZSAtOD4pICg/IDx0eXBlIDE2OSBbXSA8dHlwZSAxNjg+PiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKGQgPHR5cGUgMTM5PikgRmlsZUxpbmUgKHBjIDx0eXBlIC04PikgKD8gPHR5cGUgLTE2PiwgPyA8dHlwZSAtMTE+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAoZCA8dHlwZSAxMzk+KSBUeXBlIChvZmYgPHR5cGUgMTExPikgKD8gPHR5cGUgMTEyPiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKGQgPHR5cGUgMTM5PikgLmRlYnVnL2R3YXJmLnBhcnNlTGluZVByb2dyYW0gKHUgPHR5cGUgMTM3PiwgYiA8dHlwZSAxNDg+LCBoZHIgPHR5cGUgMTcwICIuZGVidWcvZHdhcmYubGluZUhkciIgPHR5cGUgMTcxIHN0cnVjdCB7IC5kZWJ1Zy9kd2FyZi52ZXJzaW9uIDx0eXBlIC02PjsgLmRlYnVnL2R3YXJmLm1pbkluc25MZW4gPHR5cGUgLTU+OyAuZGVidWcvZHdhcmYubWF4T3BzUGVySW5zbiA8dHlwZSAtNT47IC5kZWJ1Zy9kd2FyZi5kZWZTdG10IDx0eXBlIC0xNT47IC5kZWJ1Zy9kd2FyZi5saW5lQmFzZSA8dHlwZSAtMT47IC5kZWJ1Zy9kd2FyZi5saW5lUmFuZ2UgPHR5cGUgLTU+OyAuZGVidWcvZHdhcmYub3BCYXNlIDx0eXBlIC01PjsgLmRlYnVnL2R3YXJmLm9wTGVuIDx0eXBlIDE3MiBbXSA8dHlwZSAtNT4+OyAuZGVidWcvZHdhcmYuZGlycyA8dHlwZSAxNzMgW10gPHR5cGUgLTE2Pj47IC5kZWJ1Zy9kd2FyZi5maWxlcyA8dHlwZSAxNzQgW10gPHR5cGUgLTE2Pj47IH0+PiwgZW5kIDx0eXBlIDExMT4pOwogZnVuYyAoZCA8dHlwZSAxMzk+KSBBZGRUeXBlcyAobmFtZSA8dHlwZSAtMTY+LCB0eXBlcyA8dHlwZSAxNzUgW10gPHR5cGUgLTIwPj4pIDx0eXBlIC0xOT47CiBmdW5jIChkIDx0eXBlIDEzOT4pIC5kZWJ1Zy9kd2FyZi5wYXJzZUxpbmVIZHIgKHUgPHR5cGUgMTM3PiwgYiA8dHlwZSAxNDg+LCBkd2FyZjY0IDx0eXBlIC0xNT4pIChoZHIgPHR5cGUgMTcwPik7CiBmdW5jIChkIDx0eXBlIDEzOT4pIC5kZWJ1Zy9kd2FyZi51bml0UmVhZGVyIChpIDx0eXBlIC0xMT4pIDx0eXBlIDE0MD47Cj4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAoZiA8dHlwZSA3Nz4pIEltcG9ydGVkU3ltYm9scyAoKSAoPyA8dHlwZSAxNzYgW10gPHR5cGUgLTE2Pj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jIChmIDx0eXBlIDc3PikgSW1wb3J0ZWRMaWJyYXJpZXMgKCkgKD8gPHR5cGUgMTc3IFtdIDx0eXBlIC0xNj4+LCA/IDx0eXBlIC0xOT4pOwo+PjsgfT4+Owp0eXBlIDx0eXBlIDIyPjsKdHlwZSA8dHlwZSAxNzggIkZhdEZpbGUiIDx0eXBlIDE3OSBzdHJ1Y3QgeyBNYWdpYyA8dHlwZSAtNz47IEFyY2hlcyA8dHlwZSAxODAgW10gPHR5cGUgMjA+PjsgLmRlYnVnL21hY2hvLmNsb3NlciA8dHlwZSA3NT47IH0+CiBmdW5jIChmZiA8dHlwZSAxODEgKjx0eXBlIDE3OD4+KSBDbG9zZSAoKSA8dHlwZSAtMTk+Owo+Owp0eXBlIDx0eXBlIDI1PjsKdHlwZSA8dHlwZSAyNz47CnR5cGUgPHR5cGUgMTY+Owp0eXBlIDx0eXBlIDM5PjsKdHlwZSA8dHlwZSA0PjsKdHlwZSA8dHlwZSA5PjsKY29uc3QgTG9hZENtZER5bGliIDx0eXBlIDk+ID0gMTIgOwpjb25zdCBMb2FkQ21kRHlsaW5rZXIgPHR5cGUgOT4gPSAxNSA7CmNvbnN0IExvYWRDbWREeXN5bXRhYiA8dHlwZSA5PiA9IDExIDsKY29uc3QgTG9hZENtZFNlZ21lbnQgPHR5cGUgOT4gPSAxIDsKY29uc3QgTG9hZENtZFNlZ21lbnQ2NCA8dHlwZSA5PiA9IDI1IDsKY29uc3QgTG9hZENtZFN5bXRhYiA8dHlwZSA5PiA9IDIgOwpjb25zdCBMb2FkQ21kVGhyZWFkIDx0eXBlIDk+ID0gNCA7CmNvbnN0IExvYWRDbWRVbml4VGhyZWFkIDx0eXBlIDk+ID0gNSA7CmNvbnN0IE1hZ2ljMzIgPHR5cGUgLTc+ID0gNDI3NzAwOTEwMiA7CmNvbnN0IE1hZ2ljNjQgPHR5cGUgLTc+ID0gNDI3NzAwOTEwMyA7CmNvbnN0IE1hZ2ljRmF0IDx0eXBlIC03PiA9IDM0MDU2OTE1ODIgOwpmdW5jIE5ld0ZhdEZpbGUgKHIgPHR5cGUgNDg+KSAoPyA8dHlwZSAxODE+LCA/IDx0eXBlIC0xOT4pOwpmdW5jIE5ld0ZpbGUgKHIgPHR5cGUgNDg+KSAoPyA8dHlwZSA3Nz4sID8gPHR5cGUgLTE5Pik7CnR5cGUgPHR5cGUgMTgyICJObGlzdDMyIiA8dHlwZSAxODMgc3RydWN0IHsgTmFtZSA8dHlwZSAtNz47IFR5cGUgPHR5cGUgLTU+OyBTZWN0IDx0eXBlIC01PjsgRGVzYyA8dHlwZSAtNj47IFZhbHVlIDx0eXBlIC03PjsgfT4+Owp0eXBlIDx0eXBlIDE4NCAiTmxpc3Q2NCIgPHR5cGUgMTg1IHN0cnVjdCB7IE5hbWUgPHR5cGUgLTc+OyBUeXBlIDx0eXBlIC01PjsgU2VjdCA8dHlwZSAtNT47IERlc2MgPHR5cGUgLTY+OyBWYWx1ZSA8dHlwZSAtOD47IH0+PjsKZnVuYyBPcGVuIChuYW1lIDx0eXBlIC0xNj4pICg/IDx0eXBlIDc3PiwgPyA8dHlwZSAtMTk+KTsKZnVuYyBPcGVuRmF0IChuYW1lIDx0eXBlIC0xNj4pIChmZiA8dHlwZSAxODE+LCBlcnIgPHR5cGUgLTE5Pik7CnR5cGUgPHR5cGUgMTg2ICJSZWdzMzg2IiA8dHlwZSAxODcgc3RydWN0IHsgQVggPHR5cGUgLTc+OyBCWCA8dHlwZSAtNz47IENYIDx0eXBlIC03PjsgRFggPHR5cGUgLTc+OyBESSA8dHlwZSAtNz47IFNJIDx0eXBlIC03PjsgQlAgPHR5cGUgLTc+OyBTUCA8dHlwZSAtNz47IFNTIDx0eXBlIC03PjsgRkxBR1MgPHR5cGUgLTc+OyBJUCA8dHlwZSAtNz47IENTIDx0eXBlIC03PjsgRFMgPHR5cGUgLTc+OyBFUyA8dHlwZSAtNz47IEZTIDx0eXBlIC03PjsgR1MgPHR5cGUgLTc+OyB9Pj47CnR5cGUgPHR5cGUgMTg4ICJSZWdzQU1ENjQiIDx0eXBlIDE4OSBzdHJ1Y3QgeyBBWCA8dHlwZSAtOD47IEJYIDx0eXBlIC04PjsgQ1ggPHR5cGUgLTg+OyBEWCA8dHlwZSAtOD47IERJIDx0eXBlIC04PjsgU0kgPHR5cGUgLTg+OyBCUCA8dHlwZSAtOD47IFNQIDx0eXBlIC04PjsgUjggPHR5cGUgLTg+OyBSOSA8dHlwZSAtOD47IFIxMCA8dHlwZSAtOD47IFIxMSA8dHlwZSAtOD47IFIxMiA8dHlwZSAtOD47IFIxMyA8dHlwZSAtOD47IFIxNCA8dHlwZSAtOD47IFIxNSA8dHlwZSAtOD47IElQIDx0eXBlIC04PjsgRkxBR1MgPHR5cGUgLTg+OyBDUyA8dHlwZSAtOD47IEZTIDx0eXBlIC04PjsgR1MgPHR5cGUgLTg+OyB9Pj47CnR5cGUgPHR5cGUgNDQ+Owp0eXBlIDx0eXBlIDE5MCAiU2VjdGlvbjMyIiA8dHlwZSAxOTEgc3RydWN0IHsgTmFtZSA8dHlwZSAxOTIgWzE2IF0gPHR5cGUgLTIwPj47IFNlZyA8dHlwZSAxOTMgWzE2IF0gPHR5cGUgLTIwPj47IEFkZHIgPHR5cGUgLTc+OyBTaXplIDx0eXBlIC03PjsgT2Zmc2V0IDx0eXBlIC03PjsgQWxpZ24gPHR5cGUgLTc+OyBSZWxvZmYgPHR5cGUgLTc+OyBOcmVsb2MgPHR5cGUgLTc+OyBGbGFncyA8dHlwZSAtNz47IFJlc2VydmUxIDx0eXBlIC03PjsgUmVzZXJ2ZTIgPHR5cGUgLTc+OyB9Pj47CnR5cGUgPHR5cGUgMTk0ICJTZWN0aW9uNjQiIDx0eXBlIDE5NSBzdHJ1Y3QgeyBOYW1lIDx0eXBlIDE5NiBbMTYgXSA8dHlwZSAtMjA+PjsgU2VnIDx0eXBlIDE5NyBbMTYgXSA8dHlwZSAtMjA+PjsgQWRkciA8dHlwZSAtOD47IFNpemUgPHR5cGUgLTg+OyBPZmZzZXQgPHR5cGUgLTc+OyBBbGlnbiA8dHlwZSAtNz47IFJlbG9mZiA8dHlwZSAtNz47IE5yZWxvYyA8dHlwZSAtNz47IEZsYWdzIDx0eXBlIC03PjsgUmVzZXJ2ZTEgPHR5cGUgLTc+OyBSZXNlcnZlMiA8dHlwZSAtNz47IFJlc2VydmUzIDx0eXBlIC03PjsgfT4+Owp0eXBlIDx0eXBlIDQ2PjsKdHlwZSA8dHlwZSA4Mj47CnR5cGUgPHR5cGUgMTk4ICJTZWdtZW50MzIiIDx0eXBlIDE5OSBzdHJ1Y3QgeyBDbWQgPHR5cGUgOT47IExlbiA8dHlwZSAtNz47IE5hbWUgPHR5cGUgMjAwIFsxNiBdIDx0eXBlIC0yMD4+OyBBZGRyIDx0eXBlIC03PjsgTWVtc3ogPHR5cGUgLTc+OyBPZmZzZXQgPHR5cGUgLTc+OyBGaWxlc3ogPHR5cGUgLTc+OyBNYXhwcm90IDx0eXBlIC03PjsgUHJvdCA8dHlwZSAtNz47IE5zZWN0IDx0eXBlIC03PjsgRmxhZyA8dHlwZSAtNz47IH0+PjsKdHlwZSA8dHlwZSAyMDEgIlNlZ21lbnQ2NCIgPHR5cGUgMjAyIHN0cnVjdCB7IENtZCA8dHlwZSA5PjsgTGVuIDx0eXBlIC03PjsgTmFtZSA8dHlwZSAyMDMgWzE2IF0gPHR5cGUgLTIwPj47IEFkZHIgPHR5cGUgLTg+OyBNZW1zeiA8dHlwZSAtOD47IE9mZnNldCA8dHlwZSAtOD47IEZpbGVzeiA8dHlwZSAtOD47IE1heHByb3QgPHR5cGUgLTc+OyBQcm90IDx0eXBlIC03PjsgTnNlY3QgPHR5cGUgLTc+OyBGbGFnIDx0eXBlIC03PjsgfT4+Owp0eXBlIDx0eXBlIDg0PjsKdHlwZSA8dHlwZSA3Mj47CnR5cGUgPHR5cGUgNjc+Owp0eXBlIDx0eXBlIDY5PjsKdHlwZSA8dHlwZSAyMDQgIlRocmVhZCIgPHR5cGUgMjA1IHN0cnVjdCB7IENtZCA8dHlwZSA5PjsgTGVuIDx0eXBlIC03PjsgVHlwZSA8dHlwZSAtNz47IERhdGEgPHR5cGUgMjA2IFtdIDx0eXBlIC03Pj47IH0+PjsKdHlwZSA8dHlwZSAyOT47CmNvbnN0IFR5cGVCdW5kbGUgPHR5cGUgMjk+ID0gOCA7CmNvbnN0IFR5cGVEeWxpYiA8dHlwZSAyOT4gPSA2IDsKY29uc3QgVHlwZUV4ZWMgPHR5cGUgMjk+ID0gMiA7CmNvbnN0IFR5cGVPYmogPHR5cGUgMjk+ID0gMSA7CmNoZWNrc3VtIDFBMjNBQzNDODdCNTFBREIzMTM2QzcyQTI3NUQ5REJDQzUxRjM2QUU7CgAuc3ltdGFiAC5zdHJ0YWIALnNoc3RydGFiAC5nb19leHBvcnQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbAAAAAQAAAAAAAAAAAAAANAAAAKVCAAAAAAAAAAAAAAEAAAAAAAAAEQAAAAMAAAAAAAAAAAAAANlCAAAmAAAAAAAAAAAAAAABAAAAAAAAAAEAAAACAAAAAAAAAAAAAAAAQwAAIAAAAAQAAAACAAAABAAAABAAAAAJAAAAAwAAAAAAAAAAAAAAIEMAAAEAAAAAAAAAAAAAAAEAAAAAAAAA