f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAAC0IwAABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIGNvb2tpZWphcjsKcGtncGF0aCBuZXQvaHR0cC9jb29raWVqYXI7CnByaW9yaXR5IDEzOwppbXBvcnQgZXJyb3JzIGVycm9ycyAiZXJyb3JzIjsKaW1wb3J0IGZtdCBmbXQgImZtdCI7CmltcG9ydCBuZXQgbmV0ICJuZXQiOwppbXBvcnQgaHR0cCBuZXQvaHR0cCAibmV0L2h0dHAiOwppbXBvcnQgdXJsIG5ldC91cmwgIm5ldC91cmwiOwppbXBvcnQgc29ydCBzb3J0ICJzb3J0IjsKaW1wb3J0IHN0cmluZ3Mgc3RyaW5ncyAic3RyaW5ncyI7CmltcG9ydCBzeW5jIHN5bmMgInN5bmMiOwppbXBvcnQgdGltZSB0aW1lICJ0aW1lIjsKaW1wb3J0IHV0ZjggdW5pY29kZS91dGY4ICJ1bmljb2RlL3V0ZjgiOwppbml0IGNvb2tpZWphciBuZXRfaHR0cF9jb29raWVqYXIuLmltcG9ydCAxMyBtYXRoIG1hdGguLmltcG9ydCAxIHJ1bnRpbWUgcnVudGltZS4uaW1wb3J0IDEgdW5pY29kZSB1bmljb2RlLi5pbXBvcnQgMSBzdHJjb252IHN0cmNvbnYuLmltcG9ydCAyIHN5bmMgc3luYy4uaW1wb3J0IDIgaW8gaW8uLmltcG9ydCAzIHJhbmQgbWF0aF9yYW5kLi5pbXBvcnQgMyByZWZsZWN0IHJlZmxlY3QuLmltcG9ydCAzIHN5c2NhbGwgc3lzY2FsbC4uaW1wb3J0IDMgYmluYXJ5IGVuY29kaW5nX2JpbmFyeS4uaW1wb3J0IDQgYnl0ZXMgYnl0ZXMuLmltcG9ydCA0IGNpcGhlciBjcnlwdG9fY2lwaGVyLi5pbXBvcnQgNCBzeXNjYWxsIGludGVybmFsX3N5c2NhbGwuLmltcG9ydCA0IHRpbWUgdGltZS4uaW1wb3J0IDQgYmFzZTY0IGVuY29kaW5nX2Jhc2U2NC4uaW1wb3J0IDUgYnVmaW8gYnVmaW8uLmltcG9ydCA1IGNyYzMyIGhhc2hfY3JjMzIuLmltcG9ydCA1IGNyeXB0byBjcnlwdG8uLmltcG9ydCA1IGRlcyBjcnlwdG9fZGVzLi5pbXBvcnQgNSBvcyBvcy4uaW1wb3J0IDUgcGF0aCBwYXRoLi5pbXBvcnQgNSBmaWxlcGF0aCBwYXRoX2ZpbGVwYXRoLi5pbXBvcnQgNiBmbXQgZm10Li5pbXBvcnQgNiBtZDUgY3J5cHRvX21kNS4uaW1wb3J0IDYgbmV0IG5ldC4uaW1wb3J0IDYgcGVtIGVuY29kaW5nX3BlbS4uaW1wb3J0IDYgc2hhMSBjcnlwdG9fc2hhMS4uaW1wb3J0IDYgc2hhMjU2IGNyeXB0b19zaGEyNTYuLmltcG9ydCA2IHNoYTUxMiBjcnlwdG9fc2hhNTEyLi5pbXBvcnQgNiBiaWcgbWF0aF9iaWcuLmltcG9ydCA3IGZsYXRlIGNvbXByZXNzX2ZsYXRlLi5pbXBvcnQgNyBoZXggZW5jb2RpbmdfaGV4Li5pbXBvcnQgNyBpbnRlcm5hbCBuZXRfaHR0cF9pbnRlcm5hbC4uaW1wb3J0IDcgaW91dGlsIGlvX2lvdXRpbC4uaW1wb3J0IDcgbG9nIGxvZy4uaW1wb3J0IDcgbWltZSBtaW1lLi5pbXBvcnQgNyBhc24xIGVuY29kaW5nX2FzbjEuLmltcG9ydCA4IGRzYSBjcnlwdG9fZHNhLi5pbXBvcnQgOCBlbGxpcHRpYyBjcnlwdG9fZWxsaXB0aWMuLmltcG9ydCA4IGd6aXAgY29tcHJlc3NfZ3ppcC4uaW1wb3J0IDggcmFuZCBjcnlwdG9fcmFuZC4uaW1wb3J0IDggdGV4dHByb3RvIG5ldF90ZXh0cHJvdG8uLmltcG9ydCA4IGVjZHNhIGNyeXB0b19lY2RzYS4uaW1wb3J0IDkgbXVsdGlwYXJ0IG1pbWVfbXVsdGlwYXJ0Li5pbXBvcnQgOSBwa2l4IGNyeXB0b194NTA5X3BraXguLmltcG9ydCA5IHJzYSBjcnlwdG9fcnNhLi5pbXBvcnQgOSB4NTA5IGNyeXB0b194NTA5Li5pbXBvcnQgMTAgdGxzIGNyeXB0b190bHMuLmltcG9ydCAxMSBodHRwIG5ldF9odHRwLi5pbXBvcnQgMTI7CnR5cGUgPHR5cGUgMSAiSmFyIiA8dHlwZSAyIHN0cnVjdCB7IC5uZXQvaHR0cC9jb29raWVqYXIucHNMaXN0IDx0eXBlIDMgIlB1YmxpY1N1ZmZpeExpc3QiIDx0eXBlIDQgaW50ZXJmYWNlIHsgUHVibGljU3VmZml4IChkb21haW4gPHR5cGUgLTE2PikgPHR5cGUgLTE2PjsgU3RyaW5nICgpIDx0eXBlIC0xNj47IH0+PjsgLm5ldC9odHRwL2Nvb2tpZWphci5tdSA8dHlwZSA1ICJzeW5jLk11dGV4IiA8dHlwZSA2IHN0cnVjdCB7IC5zeW5jLnN0YXRlIDx0eXBlIC0zPjsgLnN5bmMuc2VtYSA8dHlwZSAtNz47IH0+CiBmdW5jIChtIDx0eXBlIDcgKjx0eXBlIDU+PikgVW5sb2NrICgpOwogZnVuYyAobSA8dHlwZSA3PikgTG9jayAoKTsKPjsgLm5ldC9odHRwL2Nvb2tpZWphci5lbnRyaWVzIDx0eXBlIDggbWFwIFs8dHlwZSAtMTY+XSA8dHlwZSA5IG1hcCBbPHR5cGUgLTE2Pl0gPHR5cGUgMTAgIi5uZXQvaHR0cC9jb29raWVqYXIuZW50cnkiIDx0eXBlIDExIHN0cnVjdCB7IE5hbWUgPHR5cGUgLTE2PjsgVmFsdWUgPHR5cGUgLTE2PjsgRG9tYWluIDx0eXBlIC0xNj47IFBhdGggPHR5cGUgLTE2PjsgU2VjdXJlIDx0eXBlIC0xNT47IEh0dHBPbmx5IDx0eXBlIC0xNT47IFBlcnNpc3RlbnQgPHR5cGUgLTE1PjsgSG9zdE9ubHkgPHR5cGUgLTE1PjsgRXhwaXJlcyA8dHlwZSAxMiAidGltZS5UaW1lIiA8dHlwZSAxMyBzdHJ1Y3QgeyAudGltZS5zZWMgPHR5cGUgLTQ+OyAudGltZS5uc2VjIDx0eXBlIC0zPjsgLnRpbWUubG9jIDx0eXBlIDE0ICo8dHlwZSAxNSAidGltZS5Mb2NhdGlvbiIgPHR5cGUgMTYgc3RydWN0IHsgLnRpbWUubmFtZSA8dHlwZSAtMTY+OyAudGltZS56b25lIDx0eXBlIDE3IFtdIDx0eXBlIDE4ICIudGltZS56b25lIiA8dHlwZSAxOSBzdHJ1Y3QgeyAudGltZS5uYW1lIDx0eXBlIC0xNj47IC50aW1lLm9mZnNldCA8dHlwZSAtMTE+OyAudGltZS5pc0RTVCA8dHlwZSAtMTU+OyB9Pj4+OyAudGltZS50eCA8dHlwZSAyMCBbXSA8dHlwZSAyMSAiLnRpbWUuem9uZVRyYW5zIiA8dHlwZSAyMiBzdHJ1Y3QgeyAudGltZS53aGVuIDx0eXBlIC00PjsgLnRpbWUuaW5kZXggPHR5cGUgLTU+OyAudGltZS5pc3N0ZCA8dHlwZSAtMTU+OyAudGltZS5pc3V0YyA8dHlwZSAtMTU+OyB9Pj4+OyAudGltZS5jYWNoZVN0YXJ0IDx0eXBlIC00PjsgLnRpbWUuY2FjaGVFbmQgPHR5cGUgLTQ+OyAudGltZS5jYWNoZVpvbmUgPHR5cGUgMjMgKjx0eXBlIDE4Pj47IH0+CiBmdW5jIChsIDx0eXBlIDI0ICo8dHlwZSAxNT4+KSAudGltZS5maXJzdFpvbmVVc2VkICgpIDx0eXBlIC0xNT47CiBmdW5jIChsIDx0eXBlIDI0PikgLnRpbWUubG9va3VwIChzZWMgPHR5cGUgLTQ+KSAobmFtZSA8dHlwZSAtMTY+LCBvZmZzZXQgPHR5cGUgLTExPiwgaXNEU1QgPHR5cGUgLTE1Piwgc3RhcnQgPHR5cGUgLTQ+LCBlbmQgPHR5cGUgLTQ+KTsKIGZ1bmMgKGwgPHR5cGUgMjQ+KSAudGltZS5sb29rdXBOYW1lIChuYW1lIDx0eXBlIC0xNj4sIHVuaXggPHR5cGUgLTQ+KSAob2Zmc2V0IDx0eXBlIC0xMT4sIGlzRFNUIDx0eXBlIC0xNT4sIG9rIDx0eXBlIC0xNT4pOwogZnVuYyAobCA8dHlwZSAyND4pIFN0cmluZyAoKSA8dHlwZSAtMTY+OwogZnVuYyAobCA8dHlwZSAyND4pIC50aW1lLmdldCAoKSA8dHlwZSAyND47CiBmdW5jIChsIDx0eXBlIDI0PikgLnRpbWUubG9va3VwRmlyc3Rab25lICgpIDx0eXBlIC0xMT47Cj4+OyB9PgogZnVuYyAodCA8dHlwZSAxMj4pIEFmdGVyICh1IDx0eXBlIDEyPikgPHR5cGUgLTE1PjsKIGZ1bmMgKHQgPHR5cGUgMTI+KSBNYXJzaGFsVGV4dCAoKSAoPyA8dHlwZSAyNSBbXSA8dHlwZSAtMjA+PiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKHQgPHR5cGUgMTI+KSBEYXRlICgpICh5ZWFyIDx0eXBlIC0xMT4sIG1vbnRoIDx0eXBlIDI2ICJ0aW1lLk1vbnRoIiA8dHlwZSAtMTE+CiBmdW5jIChtIDx0eXBlIDI2PikgU3RyaW5nICgpIDx0eXBlIC0xNj47Cj4sIGRheSA8dHlwZSAtMTE+KTsKIGZ1bmMgKHQgPHR5cGUgMTI+KSAudGltZS5hYnMgKCkgPHR5cGUgLTg+OwogZnVuYyAodCA8dHlwZSAxMj4pIFdlZWtkYXkgKCkgPHR5cGUgMjcgInRpbWUuV2Vla2RheSIgPHR5cGUgLTExPgogZnVuYyAoZCA8dHlwZSAyNz4pIFN0cmluZyAoKSA8dHlwZSAtMTY+Owo+OwogZnVuYyAodCA8dHlwZSAxMj4pIE5hbm9zZWNvbmQgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKHQgPHR5cGUgMjggKjx0eXBlIDEyPj4pIEdvYkRlY29kZSAoZGF0YSA8dHlwZSAyOSBbXSA8dHlwZSAtMjA+PikgPHR5cGUgLTE5PjsKIGZ1bmMgKHQgPHR5cGUgMTI+KSBJbiAobG9jIDx0eXBlIDE0PikgPHR5cGUgMTI+OwogZnVuYyAodCA8dHlwZSAxMj4pIExvY2FsICgpIDx0eXBlIDEyPjsKIGZ1bmMgKHQgPHR5cGUgMTI+KSBNb250aCAoKSA8dHlwZSAyNj47CiBmdW5jICh0IDx0eXBlIDEyPikgSG91ciAoKSA8dHlwZSAtMTE+OwogZnVuYyAodCA8dHlwZSAxMj4pIE1hcnNoYWxCaW5hcnkgKCkgKD8gPHR5cGUgMzAgW10gPHR5cGUgLTIwPj4sID8gPHR5cGUgLTE5Pik7CiBmdW5jICh0IDx0eXBlIDEyPikgVW5peE5hbm8gKCkgPHR5cGUgLTQ+OwogZnVuYyAodCA8dHlwZSAxMj4pIEVxdWFsICh1IDx0eXBlIDEyPikgPHR5cGUgLTE1PjsKIGZ1bmMgKHQgPHR5cGUgMTI+KSBGb3JtYXQgKGxheW91dCA8dHlwZSAtMTY+KSA8dHlwZSAtMTY+OwogZnVuYyAodCA8dHlwZSAxMj4pIEFkZERhdGUgKHllYXJzIDx0eXBlIC0xMT4sIG1vbnRocyA8dHlwZSAtMTE+LCBkYXlzIDx0eXBlIC0xMT4pIDx0eXBlIDEyPjsKIGZ1bmMgKHQgPHR5cGUgMTI+KSBab25lICgpIChuYW1lIDx0eXBlIC0xNj4sIG9mZnNldCA8dHlwZSAtMTE+KTsKIGZ1bmMgKHQgPHR5cGUgMTI+KSBEYXkgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKHQgPHR5cGUgMTI+KSBDbG9jayAoKSAoaG91ciA8dHlwZSAtMTE+LCBtaW4gPHR5cGUgLTExPiwgc2VjIDx0eXBlIC0xMT4pOwogZnVuYyAodCA8dHlwZSAxMj4pIE1hcnNoYWxKU09OICgpICg/IDx0eXBlIDMxIFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAodCA8dHlwZSAxMj4pIFVUQyAoKSA8dHlwZSAxMj47CiBmdW5jICh0IDx0eXBlIDEyPikgLnRpbWUuZGF0ZSAoZnVsbCA8dHlwZSAtMTU+KSAoeWVhciA8dHlwZSAtMTE+LCBtb250aCA8dHlwZSAyNj4sIGRheSA8dHlwZSAtMTE+LCB5ZGF5IDx0eXBlIC0xMT4pOwogZnVuYyAodCA8dHlwZSAxMj4pIElzWmVybyAoKSA8dHlwZSAtMTU+OwogZnVuYyAodCA8dHlwZSAxMj4pIEJlZm9yZSAodSA8dHlwZSAxMj4pIDx0eXBlIC0xNT47CiBmdW5jICh0IDx0eXBlIDEyPikgU3RyaW5nICgpIDx0eXBlIC0xNj47CiBmdW5jICh0IDx0eXBlIDEyPikgU2Vjb25kICgpIDx0eXBlIC0xMT47CiBmdW5jICh0IDx0eXBlIDEyPikgTWludXRlICgpIDx0eXBlIC0xMT47CiBmdW5jICh0IDx0eXBlIDEyPikgU3ViICh1IDx0eXBlIDEyPikgPHR5cGUgMzIgInRpbWUuRHVyYXRpb24iIDx0eXBlIC00PgogZnVuYyAoZCA8dHlwZSAzMj4pIFNlY29uZHMgKCkgPHR5cGUgLTEwPjsKIGZ1bmMgKGQgPHR5cGUgMzI+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKGQgPHR5cGUgMzI+KSBNaW51dGVzICgpIDx0eXBlIC0xMD47CiBmdW5jIChkIDx0eXBlIDMyPikgSG91cnMgKCkgPHR5cGUgLTEwPjsKIGZ1bmMgKGQgPHR5cGUgMzI+KSBOYW5vc2Vjb25kcyAoKSA8dHlwZSAtND47Cj47CiBmdW5jICh0IDx0eXBlIDEyPikgUm91bmQgKGQgPHR5cGUgMzI+KSA8dHlwZSAxMj47CiBmdW5jICh0IDx0eXBlIDEyPikgVW5peCAoKSA8dHlwZSAtND47CiBmdW5jICh0IDx0eXBlIDI4PikgVW5tYXJzaGFsVGV4dCAoZGF0YSA8dHlwZSAzMyBbXSA8dHlwZSAtMjA+PikgKGVyciA8dHlwZSAtMTk+KTsKIGZ1bmMgKHQgPHR5cGUgMTI+KSBBZGQgKGQgPHR5cGUgMzI+KSA8dHlwZSAxMj47CiBmdW5jICh0IDx0eXBlIDEyPikgVHJ1bmNhdGUgKGQgPHR5cGUgMzI+KSA8dHlwZSAxMj47CiBmdW5jICh0IDx0eXBlIDEyPikgTG9jYXRpb24gKCkgPHR5cGUgMTQ+OwogZnVuYyAodCA8dHlwZSAxMj4pIEdvYkVuY29kZSAoKSAoPyA8dHlwZSAzNCBbXSA8dHlwZSAtMjA+PiwgPyA8dHlwZSAtMTk+KTsKIGZ1bmMgKHQgPHR5cGUgMjg+KSBVbm1hcnNoYWxCaW5hcnkgKGRhdGEgPHR5cGUgMzUgW10gPHR5cGUgLTIwPj4pIDx0eXBlIC0xOT47CiBmdW5jICh0IDx0eXBlIDEyPikgSVNPV2VlayAoKSAoeWVhciA8dHlwZSAtMTE+LCB3ZWVrIDx0eXBlIC0xMT4pOwogZnVuYyAodCA8dHlwZSAxMj4pIC50aW1lLmxvY2FicyAoKSAobmFtZSA8dHlwZSAtMTY+LCBvZmZzZXQgPHR5cGUgLTExPiwgYWJzIDx0eXBlIC04Pik7CiBmdW5jICh0IDx0eXBlIDEyPikgWWVhckRheSAoKSA8dHlwZSAtMTE+OwogZnVuYyAodCA8dHlwZSAxMj4pIFllYXIgKCkgPHR5cGUgLTExPjsKIGZ1bmMgKHQgPHR5cGUgMjg+KSBVbm1hcnNoYWxKU09OIChkYXRhIDx0eXBlIDM2IFtdIDx0eXBlIC0yMD4+KSAoZXJyIDx0eXBlIC0xOT4pOwo+OyBDcmVhdGlvbiA8dHlwZSAxMj47IExhc3RBY2Nlc3MgPHR5cGUgMTI+OyAubmV0L2h0dHAvY29va2llamFyLnNlcU51bSA8dHlwZSAtOD47IH0+CiBmdW5jIChlIDx0eXBlIDM3ICo8dHlwZSAxMD4+KSAubmV0L2h0dHAvY29va2llamFyLmlkICgpIDx0eXBlIC0xNj47CiBmdW5jIChlIDx0eXBlIDM3PikgLm5ldC9odHRwL2Nvb2tpZWphci5zaG91bGRTZW5kIChodHRwcyA8dHlwZSAtMTU+LCBob3N0IDx0eXBlIC0xNj4sIHBhdGggPHR5cGUgLTE2PikgPHR5cGUgLTE1PjsKIGZ1bmMgKGUgPHR5cGUgMzc+KSAubmV0L2h0dHAvY29va2llamFyLmRvbWFpbk1hdGNoIChob3N0IDx0eXBlIC0xNj4pIDx0eXBlIC0xNT47CiBmdW5jIChlIDx0eXBlIDM3PikgLm5ldC9odHRwL2Nvb2tpZWphci5wYXRoTWF0Y2ggKHJlcXVlc3RQYXRoIDx0eXBlIC0xNj4pIDx0eXBlIC0xNT47Cj4+PjsgLm5ldC9odHRwL2Nvb2tpZWphci5uZXh0U2VxTnVtIDx0eXBlIC04PjsgfT4KIGZ1bmMgKGogPHR5cGUgMzggKjx0eXBlIDE+PikgQ29va2llcyAodSA8dHlwZSAzOSAqPHR5cGUgNDAgIm5ldC91cmwuVVJMIiA8dHlwZSA0MSBzdHJ1Y3QgeyBTY2hlbWUgPHR5cGUgLTE2PjsgT3BhcXVlIDx0eXBlIC0xNj47IFVzZXIgPHR5cGUgNDIgKjx0eXBlIDQzICJuZXQvdXJsLlVzZXJpbmZvIiA8dHlwZSA0NCBzdHJ1Y3QgeyAubmV0L3VybC51c2VybmFtZSA8dHlwZSAtMTY+OyAubmV0L3VybC5wYXNzd29yZCA8dHlwZSAtMTY+OyAubmV0L3VybC5wYXNzd29yZFNldCA8dHlwZSAtMTU+OyB9PgogZnVuYyAodSA8dHlwZSA0NSAqPHR5cGUgNDM+PikgVXNlcm5hbWUgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKHUgPHR5cGUgNDU+KSBQYXNzd29yZCAoKSAoPyA8dHlwZSAtMTY+LCA/IDx0eXBlIC0xNT4pOwogZnVuYyAodSA8dHlwZSA0NT4pIFN0cmluZyAoKSA8dHlwZSAtMTY+Owo+PjsgSG9zdCA8dHlwZSAtMTY+OyBQYXRoIDx0eXBlIC0xNj47IFJhd1F1ZXJ5IDx0eXBlIC0xNj47IEZyYWdtZW50IDx0eXBlIC0xNj47IH0+CiBmdW5jICh1IDx0eXBlIDQ2ICo8dHlwZSA0MD4+KSBJc0FicyAoKSA8dHlwZSAtMTU+OwogZnVuYyAodSA8dHlwZSA0Nj4pIFJlcXVlc3RVUkkgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKHUgPHR5cGUgNDY+KSBTdHJpbmcgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKHUgPHR5cGUgNDY+KSBSZXNvbHZlUmVmZXJlbmNlIChyZWYgPHR5cGUgNDY+KSA8dHlwZSA0Nj47CiBmdW5jICh1IDx0eXBlIDQ2PikgUXVlcnkgKCkgPHR5cGUgNDcgIm5ldC91cmwuVmFsdWVzIiA8dHlwZSA0OCBtYXAgWzx0eXBlIC0xNj5dIDx0eXBlIDQ5IFtdIDx0eXBlIC0xNj4+PgogZnVuYyAodiA8dHlwZSA0Nz4pIEdldCAoa2V5IDx0eXBlIC0xNj4pIDx0eXBlIC0xNj47CiBmdW5jICh2IDx0eXBlIDQ3PikgRW5jb2RlICgpIDx0eXBlIC0xNj47CiBmdW5jICh2IDx0eXBlIDQ3PikgU2V0IChrZXkgPHR5cGUgLTE2PiwgdmFsdWUgPHR5cGUgLTE2Pik7CiBmdW5jICh2IDx0eXBlIDQ3PikgQWRkIChrZXkgPHR5cGUgLTE2PiwgdmFsdWUgPHR5cGUgLTE2Pik7CiBmdW5jICh2IDx0eXBlIDQ3PikgRGVsIChrZXkgPHR5cGUgLTE2Pik7Cj47CiBmdW5jICh1IDx0eXBlIDQ2PikgUGFyc2UgKHJlZiA8dHlwZSAtMTY+KSAoPyA8dHlwZSA0Nj4sID8gPHR5cGUgLTE5Pik7Cj4+KSAoY29va2llcyA8dHlwZSA1MCBbXSA8dHlwZSA1MSAqPHR5cGUgNTIgIm5ldC9odHRwLkNvb2tpZSIgPHR5cGUgNTMgc3RydWN0IHsgTmFtZSA8dHlwZSAtMTY+OyBWYWx1ZSA8dHlwZSAtMTY+OyBQYXRoIDx0eXBlIC0xNj47IERvbWFpbiA8dHlwZSAtMTY+OyBFeHBpcmVzIDx0eXBlIDEyPjsgUmF3RXhwaXJlcyA8dHlwZSAtMTY+OyBNYXhBZ2UgPHR5cGUgLTExPjsgU2VjdXJlIDx0eXBlIC0xNT47IEh0dHBPbmx5IDx0eXBlIC0xNT47IFJhdyA8dHlwZSAtMTY+OyBVbnBhcnNlZCA8dHlwZSA1NCBbXSA8dHlwZSAtMTY+PjsgfT4KIGZ1bmMgKGMgPHR5cGUgNTUgKjx0eXBlIDUyPj4pIFN0cmluZyAoKSA8dHlwZSAtMTY+Owo+Pj4pOwogZnVuYyAoaiA8dHlwZSAzOD4pIC5uZXQvaHR0cC9jb29raWVqYXIuY29va2llcyAodSA8dHlwZSAzOT4sIG5vdyA8dHlwZSAxMj4pIChjb29raWVzIDx0eXBlIDU2IFtdIDx0eXBlIDUxPj4pOwogZnVuYyAoaiA8dHlwZSAzOD4pIFNldENvb2tpZXMgKHUgPHR5cGUgMzk+LCBjb29raWVzIDx0eXBlIDU3IFtdIDx0eXBlIDUxPj4pOwogZnVuYyAoaiA8dHlwZSAzOD4pIC5uZXQvaHR0cC9jb29raWVqYXIuc2V0Q29va2llcyAodSA8dHlwZSAzOT4sIGNvb2tpZXMgPHR5cGUgNTggW10gPHR5cGUgNTE+Piwgbm93IDx0eXBlIDEyPik7CiBmdW5jIChqIDx0eXBlIDM4PikgLm5ldC9odHRwL2Nvb2tpZWphci5uZXdFbnRyeSAoYyA8dHlwZSA1MT4sIG5vdyA8dHlwZSAxMj4sIGRlZlBhdGggPHR5cGUgLTE2PiwgaG9zdCA8dHlwZSAtMTY+KSAoZSA8dHlwZSAxMD4sIHJlbW92ZSA8dHlwZSAtMTU+LCBlcnIgPHR5cGUgLTE5Pik7CiBmdW5jIChqIDx0eXBlIDM4PikgLm5ldC9odHRwL2Nvb2tpZWphci5kb21haW5BbmRUeXBlIChob3N0IDx0eXBlIC0xNj4sIGRvbWFpbiA8dHlwZSAtMTY+KSAoPyA8dHlwZSAtMTY+LCA/IDx0eXBlIC0xNT4sID8gPHR5cGUgLTE5Pik7Cj47CmZ1bmMgTmV3IChvIDx0eXBlIDU5ICo8dHlwZSA2MCAiT3B0aW9ucyIgPHR5cGUgNjEgc3RydWN0IHsgUHVibGljU3VmZml4TGlzdCA8dHlwZSAzPjsgfT4+PikgKD8gPHR5cGUgMzg+LCA/IDx0eXBlIC0xOT4pOwp0eXBlIDx0eXBlIDYwPjsKdHlwZSA8dHlwZSAzPjsKY2hlY2tzdW0gMjMyRTZDRjkwMjVGRjU1NjA5ODY0QTlGQkVBNTg3QkRGMkQ3NDE4MzsKAC5zeW10YWIALnN0cnRhYgAuc2hzdHJ0YWIALmdvX2V4cG9ydAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAAAAEAAAAAAAAAAAAAADQAAAA2IwAAAAAAAAAAAAABAAAAAAAAABEAAAADAAAAAAAAAAAAAABqIwAAJgAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAgAAAAAAAAAAAAAAkCMAACAAAAAEAAAAAgAAAAQAAAAQAAAACQAAAAMAAAAAAAAAAAAAALAjAAABAAAAAAAAAAAAAAABAAAAAAAAAA==