f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAACMOgAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIHBraXg7CnBrZ3BhdGggY3J5cHRvL3g1MDkvcGtpeDsKcHJpb3JpdHkgOTsKaW1wb3J0IGFzbjEgZW5jb2RpbmcvYXNuMSAiZW5jb2RpbmcvYXNuMSI7CmltcG9ydCBiaWcgbWF0aC9iaWcgIm1hdGgvYmlnIjsKaW1wb3J0IHRpbWUgdGltZSAidGltZSI7CmluaXQgcGtpeCBjcnlwdG9feDUwOV9wa2l4Li5pbXBvcnQgOSBtYXRoIG1hdGguLmltcG9ydCAxIHJ1bnRpbWUgcnVudGltZS4uaW1wb3J0IDEgdW5pY29kZSB1bmljb2RlLi5pbXBvcnQgMSBzdHJjb252IHN0cmNvbnYuLmltcG9ydCAyIHN5bmMgc3luYy4uaW1wb3J0IDIgaW8gaW8uLmltcG9ydCAzIHJhbmQgbWF0aF9yYW5kLi5pbXBvcnQgMyByZWZsZWN0IHJlZmxlY3QuLmltcG9ydCAzIHN5c2NhbGwgc3lzY2FsbC4uaW1wb3J0IDMgYmluYXJ5IGVuY29kaW5nX2JpbmFyeS4uaW1wb3J0IDQgYnl0ZXMgYnl0ZXMuLmltcG9ydCA0IHRpbWUgdGltZS4uaW1wb3J0IDQgb3Mgb3MuLmltcG9ydCA1IGZtdCBmbXQuLmltcG9ydCA2IGJpZyBtYXRoX2JpZy4uaW1wb3J0IDcgYXNuMSBlbmNvZGluZ19hc24xLi5pbXBvcnQgODsKdHlwZSA8dHlwZSAxICJBbGdvcml0aG1JZGVudGlmaWVyIiA8dHlwZSAyIHN0cnVjdCB7IEFsZ29yaXRobSA8dHlwZSAzICJlbmNvZGluZy9hc24xLk9iamVjdElkZW50aWZpZXIiIDx0eXBlIDQgW10gPHR5cGUgLTExPj4KIGZ1bmMgKG9pIDx0eXBlIDM+KSBFcXVhbCAob3RoZXIgPHR5cGUgMz4pIDx0eXBlIC0xNT47CiBmdW5jIChvaSA8dHlwZSAzPikgU3RyaW5nICgpIDx0eXBlIC0xNj47Cj47IFBhcmFtZXRlcnMgPHR5cGUgNSAiZW5jb2RpbmcvYXNuMS5SYXdWYWx1ZSIgPHR5cGUgNiBzdHJ1Y3QgeyBDbGFzcyA8dHlwZSAtMTE+OyBUYWcgPHR5cGUgLTExPjsgSXNDb21wb3VuZCA8dHlwZSAtMTU+OyBCeXRlcyA8dHlwZSA3IFtdIDx0eXBlIC0yMD4+OyBGdWxsQnl0ZXMgPHR5cGUgOCBbXSA8dHlwZSAtMjA+PjsgfT4+ICJhc24xOlwib3B0aW9uYWxcIiI7IH0+PjsKdHlwZSA8dHlwZSA5ICJBdHRyaWJ1dGVUeXBlQW5kVmFsdWUiIDx0eXBlIDEwIHN0cnVjdCB7IFR5cGUgPHR5cGUgMz47IFZhbHVlIDx0eXBlIDExIGludGVyZmFjZSB7IH0+OyB9Pj47CnR5cGUgPHR5cGUgMTIgIkF0dHJpYnV0ZVR5cGVBbmRWYWx1ZVNFVCIgPHR5cGUgMTMgc3RydWN0IHsgVHlwZSA8dHlwZSAzPjsgVmFsdWUgPHR5cGUgMTQgW10gPHR5cGUgMTUgW10gPHR5cGUgOT4+PiAiYXNuMTpcInNldFwiIjsgfT4+Owp0eXBlIDx0eXBlIDE2ICJDZXJ0aWZpY2F0ZUxpc3QiIDx0eXBlIDE3IHN0cnVjdCB7IFRCU0NlcnRMaXN0IDx0eXBlIDE4ICJUQlNDZXJ0aWZpY2F0ZUxpc3QiIDx0eXBlIDE5IHN0cnVjdCB7IFJhdyA8dHlwZSAyMCAiZW5jb2RpbmcvYXNuMS5SYXdDb250ZW50IiA8dHlwZSAyMSBbXSA8dHlwZSAtMjA+Pj47IFZlcnNpb24gPHR5cGUgLTExPiAiYXNuMTpcIm9wdGlvbmFsLGRlZmF1bHQ6MlwiIjsgU2lnbmF0dXJlIDx0eXBlIDE+OyBJc3N1ZXIgPHR5cGUgMjIgIlJETlNlcXVlbmNlIiA8dHlwZSAyMyBbXSA8dHlwZSAyNCAiUmVsYXRpdmVEaXN0aW5ndWlzaGVkTmFtZVNFVCIgPHR5cGUgMjUgW10gPHR5cGUgOT4+Pj4+OyBUaGlzVXBkYXRlIDx0eXBlIDI2ICJ0aW1lLlRpbWUiIDx0eXBlIDI3IHN0cnVjdCB7IC50aW1lLnNlYyA8dHlwZSAtND47IC50aW1lLm5zZWMgPHR5cGUgLTM+OyAudGltZS5sb2MgPHR5cGUgMjggKjx0eXBlIDI5ICJ0aW1lLkxvY2F0aW9uIiA8dHlwZSAzMCBzdHJ1Y3QgeyAudGltZS5uYW1lIDx0eXBlIC0xNj47IC50aW1lLnpvbmUgPHR5cGUgMzEgW10gPHR5cGUgMzIgIi50aW1lLnpvbmUiIDx0eXBlIDMzIHN0cnVjdCB7IC50aW1lLm5hbWUgPHR5cGUgLTE2PjsgLnRpbWUub2Zmc2V0IDx0eXBlIC0xMT47IC50aW1lLmlzRFNUIDx0eXBlIC0xNT47IH0+Pj47IC50aW1lLnR4IDx0eXBlIDM0IFtdIDx0eXBlIDM1ICIudGltZS56b25lVHJhbnMiIDx0eXBlIDM2IHN0cnVjdCB7IC50aW1lLndoZW4gPHR5cGUgLTQ+OyAudGltZS5pbmRleCA8dHlwZSAtNT47IC50aW1lLmlzc3RkIDx0eXBlIC0xNT47IC50aW1lLmlzdXRjIDx0eXBlIC0xNT47IH0+Pj47IC50aW1lLmNhY2hlU3RhcnQgPHR5cGUgLTQ+OyAudGltZS5jYWNoZUVuZCA8dHlwZSAtND47IC50aW1lLmNhY2hlWm9uZSA8dHlwZSAzNyAqPHR5cGUgMzI+PjsgfT4KIGZ1bmMgKGwgPHR5cGUgMzggKjx0eXBlIDI5Pj4pIC50aW1lLmZpcnN0Wm9uZVVzZWQgKCkgPHR5cGUgLTE1PjsKIGZ1bmMgKGwgPHR5cGUgMzg+KSAudGltZS5sb29rdXBOYW1lIChuYW1lIDx0eXBlIC0xNj4sIHVuaXggPHR5cGUgLTQ+KSAob2Zmc2V0IDx0eXBlIC0xMT4sIGlzRFNUIDx0eXBlIC0xNT4sIG9rIDx0eXBlIC0xNT4pOwogZnVuYyAobCA8dHlwZSAzOD4pIC50aW1lLmxvb2t1cCAoc2VjIDx0eXBlIC00PikgKG5hbWUgPHR5cGUgLTE2Piwgb2Zmc2V0IDx0eXBlIC0xMT4sIGlzRFNUIDx0eXBlIC0xNT4sIHN0YXJ0IDx0eXBlIC00PiwgZW5kIDx0eXBlIC00Pik7CiBmdW5jIChsIDx0eXBlIDM4PikgU3RyaW5nICgpIDx0eXBlIC0xNj47CiBmdW5jIChsIDx0eXBlIDM4PikgLnRpbWUubG9va3VwRmlyc3Rab25lICgpIDx0eXBlIC0xMT47CiBmdW5jIChsIDx0eXBlIDM4PikgLnRpbWUuZ2V0ICgpIDx0eXBlIDM4PjsKPj47IH0+CiBmdW5jICh0IDx0eXBlIDI2PikgTWFyc2hhbFRleHQgKCkgKD8gPHR5cGUgMzkgW10gPHR5cGUgLTIwPj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jICh0IDx0eXBlIDI2PikgQWZ0ZXIgKHUgPHR5cGUgMjY+KSA8dHlwZSAtMTU+OwogZnVuYyAodCA8dHlwZSAyNj4pIERhdGUgKCkgKHllYXIgPHR5cGUgLTExPiwgbW9udGggPHR5cGUgNDAgInRpbWUuTW9udGgiIDx0eXBlIC0xMT4KIGZ1bmMgKG0gPHR5cGUgNDA+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKPiwgZGF5IDx0eXBlIC0xMT4pOwogZnVuYyAodCA8dHlwZSAyNj4pIC50aW1lLmFicyAoKSA8dHlwZSAtOD47CiBmdW5jICh0IDx0eXBlIDI2PikgV2Vla2RheSAoKSA8dHlwZSA0MSAidGltZS5XZWVrZGF5IiA8dHlwZSAtMTE+CiBmdW5jIChkIDx0eXBlIDQxPikgU3RyaW5nICgpIDx0eXBlIC0xNj47Cj47CiBmdW5jICh0IDx0eXBlIDI2PikgTmFub3NlY29uZCAoKSA8dHlwZSAtMTE+OwogZnVuYyAodCA8dHlwZSA0MiAqPHR5cGUgMjY+PikgR29iRGVjb2RlIChkYXRhIDx0eXBlIDQzIFtdIDx0eXBlIC0yMD4+KSA8dHlwZSAtMTk+OwogZnVuYyAodCA8dHlwZSAyNj4pIEluIChsb2MgPHR5cGUgMjg+KSA8dHlwZSAyNj47CiBmdW5jICh0IDx0eXBlIDI2PikgTG9jYWwgKCkgPHR5cGUgMjY+OwogZnVuYyAodCA8dHlwZSAyNj4pIE1vbnRoICgpIDx0eXBlIDQwPjsKIGZ1bmMgKHQgPHR5cGUgMjY+KSBIb3VyICgpIDx0eXBlIC0xMT47CiBmdW5jICh0IDx0eXBlIDI2PikgTWFyc2hhbEJpbmFyeSAoKSAoPyA8dHlwZSA0NCBbXSA8dHlwZSAtMjA+PiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKHQgPHR5cGUgMjY+KSBVbml4TmFubyAoKSA8dHlwZSAtND47CiBmdW5jICh0IDx0eXBlIDI2PikgRXF1YWwgKHUgPHR5cGUgMjY+KSA8dHlwZSAtMTU+OwogZnVuYyAodCA8dHlwZSAyNj4pIEZvcm1hdCAobGF5b3V0IDx0eXBlIC0xNj4pIDx0eXBlIC0xNj47CiBmdW5jICh0IDx0eXBlIDI2PikgWm9uZSAoKSAobmFtZSA8dHlwZSAtMTY+LCBvZmZzZXQgPHR5cGUgLTExPik7CiBmdW5jICh0IDx0eXBlIDI2PikgQWRkRGF0ZSAoeWVhcnMgPHR5cGUgLTExPiwgbW9udGhzIDx0eXBlIC0xMT4sIGRheXMgPHR5cGUgLTExPikgPHR5cGUgMjY+OwogZnVuYyAodCA8dHlwZSAyNj4pIERheSAoKSA8dHlwZSAtMTE+OwogZnVuYyAodCA8dHlwZSAyNj4pIE1hcnNoYWxKU09OICgpICg/IDx0eXBlIDQ1IFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAodCA8dHlwZSAyNj4pIFVUQyAoKSA8dHlwZSAyNj47CiBmdW5jICh0IDx0eXBlIDI2PikgQ2xvY2sgKCkgKGhvdXIgPHR5cGUgLTExPiwgbWluIDx0eXBlIC0xMT4sIHNlYyA8dHlwZSAtMTE+KTsKIGZ1bmMgKHQgPHR5cGUgMjY+KSAudGltZS5kYXRlIChmdWxsIDx0eXBlIC0xNT4pICh5ZWFyIDx0eXBlIC0xMT4sIG1vbnRoIDx0eXBlIDQwPiwgZGF5IDx0eXBlIC0xMT4sIHlkYXkgPHR5cGUgLTExPik7CiBmdW5jICh0IDx0eXBlIDI2PikgSXNaZXJvICgpIDx0eXBlIC0xNT47CiBmdW5jICh0IDx0eXBlIDI2PikgQmVmb3JlICh1IDx0eXBlIDI2PikgPHR5cGUgLTE1PjsKIGZ1bmMgKHQgPHR5cGUgMjY+KSBTZWNvbmQgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKHQgPHR5cGUgMjY+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKHQgPHR5cGUgMjY+KSBNaW51dGUgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKHQgPHR5cGUgMjY+KSBSb3VuZCAoZCA8dHlwZSA0NiAidGltZS5EdXJhdGlvbiIgPHR5cGUgLTQ+CiBmdW5jIChkIDx0eXBlIDQ2PikgU2Vjb25kcyAoKSA8dHlwZSAtMTA+OwogZnVuYyAoZCA8dHlwZSA0Nj4pIE1pbnV0ZXMgKCkgPHR5cGUgLTEwPjsKIGZ1bmMgKGQgPHR5cGUgNDY+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKGQgPHR5cGUgNDY+KSBIb3VycyAoKSA8dHlwZSAtMTA+OwogZnVuYyAoZCA8dHlwZSA0Nj4pIE5hbm9zZWNvbmRzICgpIDx0eXBlIC00PjsKPikgPHR5cGUgMjY+OwogZnVuYyAodCA8dHlwZSAyNj4pIFN1YiAodSA8dHlwZSAyNj4pIDx0eXBlIDQ2PjsKIGZ1bmMgKHQgPHR5cGUgNDI+KSBVbm1hcnNoYWxUZXh0IChkYXRhIDx0eXBlIDQ3IFtdIDx0eXBlIC0yMD4+KSAoZXJyIDx0eXBlIC0xOT4pOwogZnVuYyAodCA8dHlwZSAyNj4pIFVuaXggKCkgPHR5cGUgLTQ+OwogZnVuYyAodCA8dHlwZSAyNj4pIFRydW5jYXRlIChkIDx0eXBlIDQ2PikgPHR5cGUgMjY+OwogZnVuYyAodCA8dHlwZSAyNj4pIEFkZCAoZCA8dHlwZSA0Nj4pIDx0eXBlIDI2PjsKIGZ1bmMgKHQgPHR5cGUgMjY+KSBHb2JFbmNvZGUgKCkgKD8gPHR5cGUgNDggW10gPHR5cGUgLTIwPj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jICh0IDx0eXBlIDI2PikgTG9jYXRpb24gKCkgPHR5cGUgMjg+OwogZnVuYyAodCA8dHlwZSA0Mj4pIFVubWFyc2hhbEJpbmFyeSAoZGF0YSA8dHlwZSA0OSBbXSA8dHlwZSAtMjA+PikgPHR5cGUgLTE5PjsKIGZ1bmMgKHQgPHR5cGUgMjY+KSBJU09XZWVrICgpICh5ZWFyIDx0eXBlIC0xMT4sIHdlZWsgPHR5cGUgLTExPik7CiBmdW5jICh0IDx0eXBlIDI2PikgLnRpbWUubG9jYWJzICgpIChuYW1lIDx0eXBlIC0xNj4sIG9mZnNldCA8dHlwZSAtMTE+LCBhYnMgPHR5cGUgLTg+KTsKIGZ1bmMgKHQgPHR5cGUgMjY+KSBZZWFyICgpIDx0eXBlIC0xMT47CiBmdW5jICh0IDx0eXBlIDI2PikgWWVhckRheSAoKSA8dHlwZSAtMTE+OwogZnVuYyAodCA8dHlwZSA0Mj4pIFVubWFyc2hhbEpTT04gKGRhdGEgPHR5cGUgNTAgW10gPHR5cGUgLTIwPj4pIChlcnIgPHR5cGUgLTE5Pik7Cj47IE5leHRVcGRhdGUgPHR5cGUgMjY+ICJhc24xOlwib3B0aW9uYWxcIiI7IFJldm9rZWRDZXJ0aWZpY2F0ZXMgPHR5cGUgNTEgW10gPHR5cGUgNTIgIlJldm9rZWRDZXJ0aWZpY2F0ZSIgPHR5cGUgNTMgc3RydWN0IHsgU2VyaWFsTnVtYmVyIDx0eXBlIDU0ICo8dHlwZSA1NSAibWF0aC9iaWcuSW50IiA8dHlwZSA1NiBzdHJ1Y3QgeyAubWF0aC9iaWcubmVnIDx0eXBlIC0xNT47IC5tYXRoL2JpZy5hYnMgPHR5cGUgNTcgIi5tYXRoL2JpZy5uYXQiIDx0eXBlIDU4IFtdIDx0eXBlIDU5ICJtYXRoL2JpZy5Xb3JkIiA8dHlwZSAtMTM+Pj4KIGZ1bmMgKHogPHR5cGUgNTc+KSAubWF0aC9iaWcubXVsICh4IDx0eXBlIDU3PiwgeSA8dHlwZSA1Nz4pIDx0eXBlIDU3PjsKIGZ1bmMgKHogPHR5cGUgNTc+KSAubWF0aC9iaWcuc2NhbiAociA8dHlwZSA2MCAiaW8uUnVuZVNjYW5uZXIiICJpbyIgPHR5cGUgNjEgaW50ZXJmYWNlIHsgPyA8dHlwZSA2MiAiaW8uUnVuZVJlYWRlciIgPHR5cGUgNjMgaW50ZXJmYWNlIHsgUmVhZFJ1bmUgKCkgKHIgPHR5cGUgLTIxPiwgc2l6ZSA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7IH0+PjsgVW5yZWFkUnVuZSAoKSA8dHlwZSAtMTk+OyB9Pj4sIGJhc2UgPHR5cGUgLTExPikgKD8gPHR5cGUgNTc+LCA/IDx0eXBlIC0xMT4sID8gPHR5cGUgLTE5Pik7CiBmdW5jICh6IDx0eXBlIDU3PikgLm1hdGgvYmlnLmFkZCAoeCA8dHlwZSA1Nz4sIHkgPHR5cGUgNTc+KSA8dHlwZSA1Nz47CiBmdW5jICh6IDx0eXBlIDU3PikgLm1hdGgvYmlnLmFuZE5vdCAoeCA8dHlwZSA1Nz4sIHkgPHR5cGUgNTc+KSA8dHlwZSA1Nz47CiBmdW5jICh6IDx0eXBlIDU3PikgLm1hdGgvYmlnLnNldEJpdCAoeCA8dHlwZSA1Nz4sIGkgPHR5cGUgLTEyPiwgYiA8dHlwZSAtMTI+KSA8dHlwZSA1Nz47CiBmdW5jICh6IDx0eXBlIDU3PikgLm1hdGgvYmlnLnN1YiAoeCA8dHlwZSA1Nz4sIHkgPHR5cGUgNTc+KSA8dHlwZSA1Nz47CiBmdW5jICh4IDx0eXBlIDU3PikgLm1hdGgvYmlnLm1vZFcgKGQgPHR5cGUgNTk+KSAociA8dHlwZSA1OT4pOwogZnVuYyAobiA8dHlwZSA1Nz4pIC5tYXRoL2JpZy5wcm9iYWJseVByaW1lIChyZXBzIDx0eXBlIC0xMT4pIDx0eXBlIC0xNT47CiBmdW5jIChxIDx0eXBlIDU3PikgLm1hdGgvYmlnLmNvbnZlcnRXb3JkcyAocyA8dHlwZSA2NCBbXSA8dHlwZSAtMjA+PiwgY2hhcnNldCA8dHlwZSAtMTY+LCBiIDx0eXBlIDU5PiwgbmRpZ2l0cyA8dHlwZSAtMTE+LCBiYiA8dHlwZSA1OT4sIHRhYmxlIDx0eXBlIDY1IFtdIDx0eXBlIDY2ICIubWF0aC9iaWcuZGl2aXNvciIgPHR5cGUgNjcgc3RydWN0IHsgLm1hdGgvYmlnLmJiYiA8dHlwZSA1Nz47IC5tYXRoL2JpZy5uYml0cyA8dHlwZSAtMTE+OyAubWF0aC9iaWcubmRpZ2l0cyA8dHlwZSAtMTE+OyB9Pj4+KTsKIGZ1bmMgKHggPHR5cGUgNTc+KSAubWF0aC9iaWcuc3RyaW5nIChjaGFyc2V0IDx0eXBlIC0xNj4pIDx0eXBlIC0xNj47CiBmdW5jICh6IDx0eXBlIDU3PikgLm1hdGgvYmlnLmRpdlcgKHggPHR5cGUgNTc+LCB5IDx0eXBlIDU5PikgKHEgPHR5cGUgNTc+LCByIDx0eXBlIDU5Pik7CiBmdW5jICh6IDx0eXBlIDU3PikgLm1hdGgvYmlnLnNociAoeCA8dHlwZSA1Nz4sIHMgPHR5cGUgLTEyPikgPHR5cGUgNTc+OwogZnVuYyAoeiA8dHlwZSA1Nz4pIC5tYXRoL2JpZy5tdWxSYW5nZSAoYSA8dHlwZSAtOD4sIGIgPHR5cGUgLTg+KSA8dHlwZSA1Nz47CiBmdW5jICh6IDx0eXBlIDU3PikgLm1hdGgvYmlnLm11bEFkZFdXICh4IDx0eXBlIDU3PiwgeSA8dHlwZSA1OT4sIHIgPHR5cGUgNTk+KSA8dHlwZSA1Nz47CiBmdW5jICh6IDx0eXBlIDU3PikgLm1hdGgvYmlnLmFuZCAoeCA8dHlwZSA1Nz4sIHkgPHR5cGUgNTc+KSA8dHlwZSA1Nz47CiBmdW5jICh4IDx0eXBlIDU3PikgLm1hdGgvYmlnLmRlY2ltYWxTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKHogPHR5cGUgNTc+KSAubWF0aC9iaWcueG9yICh4IDx0eXBlIDU3PiwgeSA8dHlwZSA1Nz4pIDx0eXBlIDU3PjsKIGZ1bmMgKHogPHR5cGUgNTc+KSAubWF0aC9iaWcuYml0IChpIDx0eXBlIC0xMj4pIDx0eXBlIC0xMj47CiBmdW5jICh6IDx0eXBlIDU3PikgLm1hdGgvYmlnLnNldCAoeCA8dHlwZSA1Nz4pIDx0eXBlIDU3PjsKIGZ1bmMgKHogPHR5cGUgNTc+KSAubWF0aC9iaWcucmFuZG9tIChyYW5kIDx0eXBlIDY4ICo8dHlwZSA2OSAibWF0aC9yYW5kLlJhbmQiICJyYW5kIiA8dHlwZSA3MCBzdHJ1Y3QgeyAubWF0aC9yYW5kLnNyYyA8dHlwZSA3MSAibWF0aC9yYW5kLlNvdXJjZSIgPHR5cGUgNzIgaW50ZXJmYWNlIHsgSW50NjMgKCkgPHR5cGUgLTQ+OyBTZWVkIChzZWVkIDx0eXBlIC00Pik7IH0+PjsgfT4KIGZ1bmMgKHIgPHR5cGUgNzMgKjx0eXBlIDY5Pj4pIEV4cEZsb2F0NjQgKCkgPHR5cGUgLTEwPjsKIGZ1bmMgKHIgPHR5cGUgNzM+KSBJbnQzMW4gKG4gPHR5cGUgLTM+KSA8dHlwZSAtMz47CiBmdW5jIChyIDx0eXBlIDczPikgVWludDMyICgpIDx0eXBlIC03PjsKIGZ1bmMgKHIgPHR5cGUgNzM+KSBJbnRuIChuIDx0eXBlIC0xMT4pIDx0eXBlIC0xMT47CiBmdW5jIChyIDx0eXBlIDczPikgUGVybSAobiA8dHlwZSAtMTE+KSA8dHlwZSA3NCBbXSA8dHlwZSAtMTE+PjsKIGZ1bmMgKHIgPHR5cGUgNzM+KSBOb3JtRmxvYXQ2NCAoKSA8dHlwZSAtMTA+OwogZnVuYyAociA8dHlwZSA3Mz4pIEludDMxICgpIDx0eXBlIC0zPjsKIGZ1bmMgKHIgPHR5cGUgNzM+KSBGbG9hdDY0ICgpIDx0eXBlIC0xMD47CiBmdW5jIChyIDx0eXBlIDczPikgU2VlZCAoc2VlZCA8dHlwZSAtND4pOwogZnVuYyAociA8dHlwZSA3Mz4pIEludCAoKSA8dHlwZSAtMTE+OwogZnVuYyAociA8dHlwZSA3Mz4pIEludDYzICgpIDx0eXBlIC00PjsKIGZ1bmMgKHIgPHR5cGUgNzM+KSBJbnQ2M24gKG4gPHR5cGUgLTQ+KSA8dHlwZSAtND47CiBmdW5jIChyIDx0eXBlIDczPikgRmxvYXQzMiAoKSA8dHlwZSAtOT47Cj4+LCBsaW1pdCA8dHlwZSA1Nz4sIG4gPHR5cGUgLTExPikgPHR5cGUgNTc+OwogZnVuYyAoeiA8dHlwZSA1Nz4pIC5tYXRoL2JpZy5vciAoeCA8dHlwZSA1Nz4sIHkgPHR5cGUgNTc+KSA8dHlwZSA1Nz47CiBmdW5jICh4IDx0eXBlIDU3PikgLm1hdGgvYmlnLmNtcCAoeSA8dHlwZSA1Nz4pIChyIDx0eXBlIC0xMT4pOwogZnVuYyAoeCA8dHlwZSA1Nz4pIC5tYXRoL2JpZy5iaXRMZW4gKCkgPHR5cGUgLTExPjsKIGZ1bmMgKHogPHR5cGUgNTc+KSAubWF0aC9iaWcuc2V0V29yZCAoeCA8dHlwZSA1OT4pIDx0eXBlIDU3PjsKIGZ1bmMgKHogPHR5cGUgNTc+KSAubWF0aC9iaWcuc2V0VWludDY0ICh4IDx0eXBlIC04PikgPHR5cGUgNTc+OwogZnVuYyAoeiA8dHlwZSA1Nz4pIC5tYXRoL2JpZy5kaXYgKHoyIDx0eXBlIDU3PiwgdSA8dHlwZSA1Nz4sIHYgPHR5cGUgNTc+KSAocSA8dHlwZSA1Nz4sIHIgPHR5cGUgNTc+KTsKIGZ1bmMgKHggPHR5cGUgNTc+KSAubWF0aC9iaWcudHJhaWxpbmdaZXJvQml0cyAoKSA8dHlwZSAtMTI+OwogZnVuYyAoeiA8dHlwZSA1Nz4pIC5tYXRoL2JpZy5leHBOTldpbmRvd2VkICh4IDx0eXBlIDU3PiwgeSA8dHlwZSA1Nz4sIG0gPHR5cGUgNTc+KSA8dHlwZSA1Nz47CiBmdW5jICh6IDx0eXBlIDU3PikgLm1hdGgvYmlnLmRpdkxhcmdlICh1IDx0eXBlIDU3PiwgdUluIDx0eXBlIDU3PiwgdiA8dHlwZSA1Nz4pIChxIDx0eXBlIDU3PiwgciA8dHlwZSA1Nz4pOwogZnVuYyAoeiA8dHlwZSA1Nz4pIC5tYXRoL2JpZy5ub3JtICgpIDx0eXBlIDU3PjsKIGZ1bmMgKHogPHR5cGUgNTc+KSAubWF0aC9iaWcuc2V0Qnl0ZXMgKGJ1ZiA8dHlwZSA3NSBbXSA8dHlwZSAtMjA+PikgPHR5cGUgNTc+OwogZnVuYyAoeiA8dHlwZSA1Nz4pIC5tYXRoL2JpZy5tYWtlIChuIDx0eXBlIC0xMT4pIDx0eXBlIDU3PjsKIGZ1bmMgKHogPHR5cGUgNTc+KSAubWF0aC9iaWcuc2hsICh4IDx0eXBlIDU3PiwgcyA8dHlwZSAtMTI+KSA8dHlwZSA1Nz47CiBmdW5jICh6IDx0eXBlIDU3PikgLm1hdGgvYmlnLmJ5dGVzIChidWYgPHR5cGUgNzYgW10gPHR5cGUgLTIwPj4pIChpIDx0eXBlIC0xMT4pOwogZnVuYyAoeiA8dHlwZSA1Nz4pIC5tYXRoL2JpZy5jbGVhciAoKTsKIGZ1bmMgKHogPHR5cGUgNTc+KSAubWF0aC9iaWcuZXhwV1cgKHggPHR5cGUgNTk+LCB5IDx0eXBlIDU5PikgPHR5cGUgNTc+OwogZnVuYyAoeiA8dHlwZSA1Nz4pIC5tYXRoL2JpZy5leHBOTiAoeCA8dHlwZSA1Nz4sIHkgPHR5cGUgNTc+LCBtIDx0eXBlIDU3PikgPHR5cGUgNTc+Owo+OyB9PgogZnVuYyAoeiA8dHlwZSA3NyAqPHR5cGUgNTU+PikgTmVnICh4IDx0eXBlIDc3PikgPHR5cGUgNzc+OwogZnVuYyAoeiA8dHlwZSA3Nz4pIFF1b1JlbSAoeCA8dHlwZSA3Nz4sIHkgPHR5cGUgNzc+LCByIDx0eXBlIDc3PikgKD8gPHR5cGUgNzc+LCA/IDx0eXBlIDc3Pik7CiBmdW5jICh4IDx0eXBlIDc3PikgQnl0ZXMgKCkgPHR5cGUgNzggW10gPHR5cGUgLTIwPj47CiBmdW5jICh6IDx0eXBlIDc3PikgU2V0Qml0cyAoYWJzIDx0eXBlIDc5IFtdIDx0eXBlIDU5Pj4pIDx0eXBlIDc3PjsKIGZ1bmMgKHogPHR5cGUgNzc+KSBTZXRCaXQgKHggPHR5cGUgNzc+LCBpIDx0eXBlIC0xMT4sIGIgPHR5cGUgLTEyPikgPHR5cGUgNzc+OwogZnVuYyAoeiA8dHlwZSA3Nz4pIFhvciAoeCA8dHlwZSA3Nz4sIHkgPHR5cGUgNzc+KSA8dHlwZSA3Nz47CiBmdW5jICh6IDx0eXBlIDc3PikgU2V0SW50NjQgKHggPHR5cGUgLTQ+KSA8dHlwZSA3Nz47CiBmdW5jICh6IDx0eXBlIDc3PikgTm90ICh4IDx0eXBlIDc3PikgPHR5cGUgNzc+OwogZnVuYyAoeiA8dHlwZSA3Nz4pIFVubWFyc2hhbEpTT04gKHRleHQgPHR5cGUgODAgW10gPHR5cGUgLTIwPj4pIDx0eXBlIC0xOT47CiBmdW5jICh6IDx0eXBlIDc3PikgT3IgKHggPHR5cGUgNzc+LCB5IDx0eXBlIDc3PikgPHR5cGUgNzc+OwogZnVuYyAoeiA8dHlwZSA3Nz4pIFNldFVpbnQ2NCAoeCA8dHlwZSAtOD4pIDx0eXBlIDc3PjsKIGZ1bmMgKHggPHR5cGUgNzc+KSBJbnQ2NCAoKSA8dHlwZSAtND47CiBmdW5jICh6IDx0eXBlIDc3PikgLm1hdGgvYmlnLnNjYW4gKHIgPHR5cGUgNjA+LCBiYXNlIDx0eXBlIC0xMT4pICg/IDx0eXBlIDc3PiwgPyA8dHlwZSAtMTE+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAoeiA8dHlwZSA3Nz4pIEdDRCAoeCA8dHlwZSA3Nz4sIHkgPHR5cGUgNzc+LCBhIDx0eXBlIDc3PiwgYiA8dHlwZSA3Nz4pIDx0eXBlIDc3PjsKIGZ1bmMgKHogPHR5cGUgNzc+KSBSZW0gKHggPHR5cGUgNzc+LCB5IDx0eXBlIDc3PikgPHR5cGUgNzc+OwogZnVuYyAoeCA8dHlwZSA3Nz4pIEJpdCAoaSA8dHlwZSAtMTE+KSA8dHlwZSAtMTI+OwogZnVuYyAoeCA8dHlwZSA3Nz4pIEJpdHMgKCkgPHR5cGUgODEgW10gPHR5cGUgNTk+PjsKIGZ1bmMgKHogPHR5cGUgNzc+KSBTZXRCeXRlcyAoYnVmIDx0eXBlIDgyIFtdIDx0eXBlIC0yMD4+KSA8dHlwZSA3Nz47CiBmdW5jICh6IDx0eXBlIDc3PikgRGl2TW9kICh4IDx0eXBlIDc3PiwgeSA8dHlwZSA3Nz4sIG0gPHR5cGUgNzc+KSAoPyA8dHlwZSA3Nz4sID8gPHR5cGUgNzc+KTsKIGZ1bmMgKHogPHR5cGUgNzc+KSBSc2ggKHggPHR5cGUgNzc+LCBuIDx0eXBlIC0xMj4pIDx0eXBlIDc3PjsKIGZ1bmMgKHggPHR5cGUgNzc+KSBDbXAgKHkgPHR5cGUgNzc+KSAociA8dHlwZSAtMTE+KTsKIGZ1bmMgKHogPHR5cGUgNzc+KSBTY2FuIChzIDx0eXBlIDgzICJmbXQuU2NhblN0YXRlIiAiZm10IiA8dHlwZSA4NCBpbnRlcmZhY2UgeyBSZWFkUnVuZSAoKSAociA8dHlwZSAtMjE+LCBzaXplIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsgVW5yZWFkUnVuZSAoKSA8dHlwZSAtMTk+OyBTa2lwU3BhY2UgKCk7IFRva2VuIChza2lwU3BhY2UgPHR5cGUgLTE1PiwgZiA8dHlwZSA4NSAoPyA8dHlwZSAtMjE+KSA8dHlwZSAtMTU+PikgKHRva2VuIDx0eXBlIDg2IFtdIDx0eXBlIC0yMD4+LCBlcnIgPHR5cGUgLTE5Pik7IFdpZHRoICgpICh3aWQgPHR5cGUgLTExPiwgb2sgPHR5cGUgLTE1Pik7IFJlYWQgKGJ1ZiA8dHlwZSA4NyBbXSA8dHlwZSAtMjA+PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOyB9Pj4sIGNoIDx0eXBlIC0yMT4pIDx0eXBlIC0xOT47CiBmdW5jICh4IDx0eXBlIDc3PikgR29iRW5jb2RlICgpICg/IDx0eXBlIDg4IFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAoeCA8dHlwZSA3Nz4pIFByb2JhYmx5UHJpbWUgKG4gPHR5cGUgLTExPikgPHR5cGUgLTE1PjsKIGZ1bmMgKHggPHR5cGUgNzc+KSBTaWduICgpIDx0eXBlIC0xMT47CiBmdW5jICh6IDx0eXBlIDc3PikgTW9kICh4IDx0eXBlIDc3PiwgeSA8dHlwZSA3Nz4pIDx0eXBlIDc3PjsKIGZ1bmMgKHogPHR5cGUgNzc+KSBFeHAgKHggPHR5cGUgNzc+LCB5IDx0eXBlIDc3PiwgbSA8dHlwZSA3Nz4pIDx0eXBlIDc3PjsKIGZ1bmMgKHggPHR5cGUgNzc+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKHogPHR5cGUgNzc+KSBBYnMgKHggPHR5cGUgNzc+KSA8dHlwZSA3Nz47CiBmdW5jICh6IDx0eXBlIDc3PikgVW5tYXJzaGFsVGV4dCAodGV4dCA8dHlwZSA4OSBbXSA8dHlwZSAtMjA+PikgPHR5cGUgLTE5PjsKIGZ1bmMgKHogPHR5cGUgNzc+KSBSYW5kIChybmQgPHR5cGUgNjg+LCBuIDx0eXBlIDc3PikgPHR5cGUgNzc+OwogZnVuYyAoeiA8dHlwZSA3Nz4pIEFuZCAoeCA8dHlwZSA3Nz4sIHkgPHR5cGUgNzc+KSA8dHlwZSA3Nz47CiBmdW5jICh6IDx0eXBlIDc3PikgTW9kSW52ZXJzZSAoZyA8dHlwZSA3Nz4sIG4gPHR5cGUgNzc+KSA8dHlwZSA3Nz47CiBmdW5jICh6IDx0eXBlIDc3PikgUXVvICh4IDx0eXBlIDc3PiwgeSA8dHlwZSA3Nz4pIDx0eXBlIDc3PjsKIGZ1bmMgKHogPHR5cGUgNzc+KSBBZGQgKHggPHR5cGUgNzc+LCB5IDx0eXBlIDc3PikgPHR5cGUgNzc+OwogZnVuYyAoeiA8dHlwZSA3Nz4pIExzaCAoeCA8dHlwZSA3Nz4sIG4gPHR5cGUgLTEyPikgPHR5cGUgNzc+OwogZnVuYyAoeiA8dHlwZSA3Nz4pIEFuZE5vdCAoeCA8dHlwZSA3Nz4sIHkgPHR5cGUgNzc+KSA8dHlwZSA3Nz47CiBmdW5jICh6IDx0eXBlIDc3PikgU2V0ICh4IDx0eXBlIDc3PikgPHR5cGUgNzc+OwogZnVuYyAoeiA8dHlwZSA3Nz4pIE1hcnNoYWxUZXh0ICgpICh0ZXh0IDx0eXBlIDkwIFtdIDx0eXBlIC0yMD4+LCBlcnIgPHR5cGUgLTE5Pik7CiBmdW5jICh6IDx0eXBlIDc3PikgTXVsICh4IDx0eXBlIDc3PiwgeSA8dHlwZSA3Nz4pIDx0eXBlIDc3PjsKIGZ1bmMgKHogPHR5cGUgNzc+KSBEaXYgKHggPHR5cGUgNzc+LCB5IDx0eXBlIDc3PikgPHR5cGUgNzc+OwogZnVuYyAoeiA8dHlwZSA3Nz4pIEJpbm9taWFsIChuIDx0eXBlIC00PiwgayA8dHlwZSAtND4pIDx0eXBlIDc3PjsKIGZ1bmMgKHggPHR5cGUgNzc+KSBGb3JtYXQgKHMgPHR5cGUgOTEgImZtdC5TdGF0ZSIgPHR5cGUgOTIgaW50ZXJmYWNlIHsgV3JpdGUgKGIgPHR5cGUgOTMgW10gPHR5cGUgLTIwPj4pIChyZXQgPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOyBXaWR0aCAoKSAod2lkIDx0eXBlIC0xMT4sIG9rIDx0eXBlIC0xNT4pOyBQcmVjaXNpb24gKCkgKHByZWMgPHR5cGUgLTExPiwgb2sgPHR5cGUgLTE1Pik7IEZsYWcgKGMgPHR5cGUgLTExPikgPHR5cGUgLTE1PjsgfT4+LCBjaCA8dHlwZSAtMjE+KTsKIGZ1bmMgKHogPHR5cGUgNzc+KSBNdWxSYW5nZSAoYSA8dHlwZSAtND4sIGIgPHR5cGUgLTQ+KSA8dHlwZSA3Nz47CiBmdW5jICh6IDx0eXBlIDc3PikgU2V0U3RyaW5nIChzIDx0eXBlIC0xNj4sIGJhc2UgPHR5cGUgLTExPikgKD8gPHR5cGUgNzc+LCA/IDx0eXBlIC0xNT4pOwogZnVuYyAoeCA8dHlwZSA3Nz4pIFVpbnQ2NCAoKSA8dHlwZSAtOD47CiBmdW5jICh6IDx0eXBlIDc3PikgTWFyc2hhbEpTT04gKCkgKD8gPHR5cGUgOTQgW10gPHR5cGUgLTIwPj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jICh4IDx0eXBlIDc3PikgQml0TGVuICgpIDx0eXBlIC0xMT47CiBmdW5jICh6IDx0eXBlIDc3PikgR29iRGVjb2RlIChidWYgPHR5cGUgOTUgW10gPHR5cGUgLTIwPj4pIDx0eXBlIC0xOT47CiBmdW5jICh6IDx0eXBlIDc3PikgLm1hdGgvYmlnLmJpbmFyeUdDRCAoYSA8dHlwZSA3Nz4sIGIgPHR5cGUgNzc+KSA8dHlwZSA3Nz47CiBmdW5jICh6IDx0eXBlIDc3PikgU3ViICh4IDx0eXBlIDc3PiwgeSA8dHlwZSA3Nz4pIDx0eXBlIDc3PjsKPj47IFJldm9jYXRpb25UaW1lIDx0eXBlIDI2PjsgRXh0ZW5zaW9ucyA8dHlwZSA5NiBbXSA8dHlwZSA5NyAiRXh0ZW5zaW9uIiA8dHlwZSA5OCBzdHJ1Y3QgeyBJZCA8dHlwZSAzPjsgQ3JpdGljYWwgPHR5cGUgLTE1PiAiYXNuMTpcIm9wdGlvbmFsXCIiOyBWYWx1ZSA8dHlwZSA5OSBbXSA8dHlwZSAtMjA+PjsgfT4+PiAiYXNuMTpcIm9wdGlvbmFsXCIiOyB9Pj4+ICJhc24xOlwib3B0aW9uYWxcIiI7IEV4dGVuc2lvbnMgPHR5cGUgMTAwIFtdIDx0eXBlIDk3Pj4gImFzbjE6XCJ0YWc6MCxvcHRpb25hbCxleHBsaWNpdFwiIjsgfT4+OyBTaWduYXR1cmVBbGdvcml0aG0gPHR5cGUgMT47IFNpZ25hdHVyZVZhbHVlIDx0eXBlIDEwMSAiZW5jb2RpbmcvYXNuMS5CaXRTdHJpbmciIDx0eXBlIDEwMiBzdHJ1Y3QgeyBCeXRlcyA8dHlwZSAxMDMgW10gPHR5cGUgLTIwPj47IEJpdExlbmd0aCA8dHlwZSAtMTE+OyB9PgogZnVuYyAoYiA8dHlwZSAxMDE+KSBBdCAoaSA8dHlwZSAtMTE+KSA8dHlwZSAtMTE+OwogZnVuYyAoYiA8dHlwZSAxMDE+KSBSaWdodEFsaWduICgpIDx0eXBlIDEwNCBbXSA8dHlwZSAtMjA+PjsKPjsgfT4KIGZ1bmMgKGNlcnRMaXN0IDx0eXBlIDEwNSAqPHR5cGUgMTY+PikgSGFzRXhwaXJlZCAobm93IDx0eXBlIDI2PikgPHR5cGUgLTE1PjsKPjsKdHlwZSA8dHlwZSA5Nz47CnR5cGUgPHR5cGUgMTA2ICJOYW1lIiA8dHlwZSAxMDcgc3RydWN0IHsgQ291bnRyeSA8dHlwZSAxMDggW10gPHR5cGUgLTE2Pj47IE9yZ2FuaXphdGlvbiA8dHlwZSAxMDg+OyBPcmdhbml6YXRpb25hbFVuaXQgPHR5cGUgMTA4PjsgTG9jYWxpdHkgPHR5cGUgMTA5IFtdIDx0eXBlIC0xNj4+OyBQcm92aW5jZSA8dHlwZSAxMDk+OyBTdHJlZXRBZGRyZXNzIDx0eXBlIDExMCBbXSA8dHlwZSAtMTY+PjsgUG9zdGFsQ29kZSA8dHlwZSAxMTA+OyBTZXJpYWxOdW1iZXIgPHR5cGUgLTE2PjsgQ29tbW9uTmFtZSA8dHlwZSAtMTY+OyBOYW1lcyA8dHlwZSAxMTEgW10gPHR5cGUgOT4+OyB9PgogZnVuYyAobiA8dHlwZSAxMTIgKjx0eXBlIDEwNj4+KSBGaWxsRnJvbVJETlNlcXVlbmNlIChyZG5zIDx0eXBlIDExMyAqPHR5cGUgMjI+Pik7CiBmdW5jIChuIDx0eXBlIDEwNj4pIFRvUkROU2VxdWVuY2UgKCkgKHJldCA8dHlwZSAyMj4pOwo+Owp0eXBlIDx0eXBlIDIyPjsKdHlwZSA8dHlwZSAyND47CnR5cGUgPHR5cGUgNTI+Owp0eXBlIDx0eXBlIDE4PjsKY2hlY2tzdW0gREI0MDNGM0U0NEUxRTc1RkRBNTBCQ0Q5NjhCODA2Mjg5NDhEQzgyMTsKAC5zeW10YWIALnN0cnRhYgAuc2hzdHJ0YWIALmdvX2V4cG9ydAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsAAAABAAAAAAAAAAAAAAA0AAAADToAAAAAAAAAAAAAAQAAAAAAAAARAAAAAwAAAAAAAAAAAAAAQToAACYAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAAGg6AAAgAAAABAAAAAIAAAAEAAAAEAAAAAkAAAADAAAAAAAAAAAAAACIOgAAAQAAAAAAAAAAAAAAAQAAAAAAAAA=