ZGlmZiAtLWdpdCBhL01ha2VmaWxlLm9yZyBiL01ha2VmaWxlLm9yZwppbmRleCBhMjhiNDY5Li5hMWY2Y2UyIDEwMDY0NAotLS0gYS9NYWtlZmlsZS5vcmcKKysrIGIvTWFrZWZpbGUub3JnCkBAIC0xMDYsNyArMTA2LDcgQEAKICMgZGlycyBpbiBjcnlwdG8gdG8gYnVpbGQKIFNESVJTPSAgXAogCW9iamVjdHMgXAotCW1kMiBtZDQgbWQ1IHNoYSBtZGMyIGhtYWMgcmlwZW1kIFwKKwltZDIgbWQ0IG1kNSBzaGEgbWRjMiBobWFjIHJpcGVtZCB3aHJscG9vbCBcCiAJZGVzIGFlcyByYzIgcmM0IHJjNSBpZGVhIGJmIGNhc3QgXAogCWJuIGVjIHJzYSBkc2EgZWNkc2EgZGggZWNkaCBkc28gZW5naW5lIFwKIAlidWZmZXIgYmlvIHN0YWNrIGxoYXNoIHJhbmQgZXJyIFwKZGlmZiAtLWdpdCBhL2NyeXB0by9wZXJsYXNtL3g4Nm1zLnBsIGIvY3J5cHRvL3Blcmxhc20veDg2bXMucGwKaW5kZXggZGU1MjczZS4uMjNjYjEyMSAxMDA2NDQKLS0tIGEvY3J5cHRvL3Blcmxhc20veDg2bXMucGwKKysrIGIvY3J5cHRvL3Blcmxhc20veDg2bXMucGwKQEAgLTQxNiw2ICs0MTYsMTEgQEAKIAkJfQogCX0KIAorc3ViIG1haW4nZGF0YV9ieXRlCisJeworCXB1c2goQG91dCwiXHREQlx0Ii5qb2luKCcsJyxAXykuIlxuIik7CisJfQorCiBzdWIgbWFpbidkYXRhX3dvcmQKIAl7CiAJcHVzaChAb3V0LCJcdEREXHQiLmpvaW4oJywnLEBfKS4iXG4iKTsKZGlmZiAtLWdpdCBhL2NyeXB0by9wZXJsYXNtL3g4Nm5hc20ucGwgYi9jcnlwdG8vcGVybGFzbS94ODZuYXNtLnBsCmluZGV4IDMzMWYxOGIuLjc4YjFmOTQgMTAwNjQ0Ci0tLSBhL2NyeXB0by9wZXJsYXNtL3g4Nm5hc20ucGwKKysrIGIvY3J5cHRvL3Blcmxhc20veDg2bmFzbS5wbApAQCAtNDAxLDYgKzQwMSwxMSBAQAogCXB1c2goQG91dCwiJGxhYmVseyRfWzBdfTpcbiIpOwogCX0KIAorc3ViIG1haW4nZGF0YV9ieXRlCisJeworCXB1c2goQG91dCwoKCRtYWluJ213ZXJrcyk/Ii5ieXRlXHQiOiJEQlx0Iikuam9pbignLCcsQF8pLiJcbiIpOworCX0KKwogc3ViIG1haW4nZGF0YV93b3JkCiAJewogCXB1c2goQG91dCwoKCRtYWluJ213ZXJrcyk/Ii5sb25nXHQiOiJERFx0Iikuam9pbignLCcsQF8pLiJcbiIpOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL3Blcmxhc20veDg2dW5peC5wbCBiL2NyeXB0by9wZXJsYXNtL3g4NnVuaXgucGwKaW5kZXggOGI2ZTUwMi4uMzQ4YmYyZCAxMDA2NDQKLS0tIGEvY3J5cHRvL3Blcmxhc20veDg2dW5peC5wbAorKysgYi9jcnlwdG8vcGVybGFzbS94ODZ1bml4LnBsCkBAIC01OTQsNiArNTk0LDExIEBACiAJCX0KIAl9CiAKK3N1YiBtYWluJ2RhdGFfYnl0ZQorCXsKKwlwdXNoKEBvdXQsIlx0LmJ5dGVcdCIuam9pbignLCcsQF8pLiJcbiIpOworCX0KKwogc3ViIG1haW4nZGF0YV93b3JkCiAJewogCXB1c2goQG91dCwiXHQubG9uZ1x0Ii5qb2luKCcsJyxAXykuIlxuIik7CmRpZmYgLS1naXQgYS9jcnlwdG8vd2hybHBvb2wvYXNtL3dwLW1teC5wbCBiL2NyeXB0by93aHJscG9vbC9hc20vd3AtbW14LnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmNDljNzcKLS0tIC9kZXYvbnVsbAorKysgYi9jcnlwdG8vd2hybHBvb2wvYXNtL3dwLW1teC5wbApAQCAtMCwwICsxLDQ5MiBAQAorIyEvdXNyL2Jpbi9lbnYgcGVybAorIworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyBXcml0dGVuIGJ5IEFuZHkgUG9seWFrb3YgPGFwcHJvQGZ5LmNoYWxtZXJzLnNlPiBmb3IgdGhlIE9wZW5TU0wKKyMgcHJvamVjdC4gUmlnaHRzIGZvciByZWRpc3RyaWJ1dGlvbiBhbmQgdXNhZ2UgaW4gc291cmNlIGFuZCBiaW5hcnkKKyMgZm9ybXMgYXJlIGdyYW50ZWQgYWNjb3JkaW5nIHRvIHRoZSBPcGVuU1NMIGxpY2Vuc2UuCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjCisjIHdoaXJscG9vbF9ibG9ja19tbXggaW1wbGVtZW50YXRpb24uCisjCisqU0NBTEU9XCgyKTsgIyAyIG9yIDgsIHRoYXQgaXMgdGhlIHF1ZXN0aW9uOi0pIFZhbHVlIG9mIDggcmVzdWx0cworIyBpbiAxNktCIGxhcmdlIHRhYmxlLCB3aGljaCBpcyB0b3VnaCBvbiBMMSBjYWNoZSwgYnV0IGVsaW1pbmF0ZXMKKyMgdW5hbGlnbmVkIHJlZmVyZW5jZXMgdG8gaXQuIFZhbHVlIG9mIDIgcmVzdWx0cyBpbiA0S0IgdGFibGUsIGJ1dAorIyA3Lzggb2YgcmVmZXJlbmNlcyB0byBpdCBhcmUgdW5hbGlnbmVkLiBBTUQgY29yZXMgc2VlbSB0byBiZQorIyBhbGxlcmdpYyB0byB0aGUgbGF0dGVyLCB3aGlsZSBJbnRlbCBvbmVzIC0gdG8gZm9ybWVyIFtzZWUgdGhlCisjIHRhYmxlXS4gSSBzdGljayB0byB2YWx1ZSBvZiAyIGZvciB0d28gcmVhc29uczogMS4gc21hbGxlciB0YWJsZQorIyBtaW5pbWl6ZXMgY2FjaGUgdHJhc2hpbmcgYW5kIHRodXMgbWl0aWdhdGVzIHRoZSBoYXphcmQgb2Ygc2lkZS0KKyMgY2hhbm5lbCBsZWFrYWdlIHNpbWlsYXIgdG8gQUVTIGNhY2hlLXRpbWluZyBvbmU7IDIuIHBlcmZvcm1hbmNlCisjIGdhcCBhbW9uZyBkaWZmZXJlbnQgtS1hcmNocyBpcyBzbWFsbGVyLgorIworIyBQZXJmb3JtYW5jZSB0YWJsZSBsaXN0cyByb3VuZGVkIGFtb3VudHMgb2YgQ1BVIGN5Y2xlcyBzcGVudCBieQorIyB3aGlybHBvb2xfYmxvY2tfbW14IHJvdXRpbmUgb24gc2luZ2xlIDY0IGJ5dGUgaW5wdXQgYmxvY2ssIGkuZS4KKyMgc21hbGxlciBpcyBiZXR0ZXIgYW5kIGFzeW1wdG90aWMgdGhyb3VnaHB1dCBjYW4gYmUgZXN0aW1hdGVkIGJ5CisjIG11bHRpcGx5aW5nIDY0IGJ5IENQVSBjbG9jayBmcmVxdWVuY3kgYW5kIGRpdmlkaW5nIGJ5IHJlbGV2YW50CisjIHZhbHVlIGZyb20gdGhlIGdpdmVuIHRhYmxlOgorIworIwkJJFNDQUxFPTIvOAlpY2M4CWdjYzMJCisjIEludGVsIFA0CTMyMDAvNDYwMAk0NjAwKCopCTY0MDAKKyMgSW50ZWwgUElJSQkyOTAwLzMwMDAJNDkwMAk1NDAwCisjIEFNRCBLWzc4XQkyNTAwLzE4MDAJOTkwMAk4MjAwKCoqKQorIworIyAoKikJSSd2ZSBza2V0Y2hlZCBldmVuIG5vbi1NTVggYXNzZW1ibGVyLCBidXQgZm9yIHRoZSByZWNvcmQKKyMJSSd2ZSBmYWlsZWQgdG8gYmVhdCB0aGUgSW50ZWwgY29tcGlsZXIgb24gUDQsIHdpdGhvdXQgdXNpbmcKKyoJTU1YIHRoYXQgaXMuLi4KKyMgKCoqKQkuLi4gb24gQU1EIG9uIHRoZSBvdGhlciBoYW5kIG5vbi1NTVggYXNzZW1ibGVyIHdhcyBvYnNlcnZlZAorIwl0byBwZXJmb3JtIHNpZ25pZmljYW50bHkgYmV0dGVyLCBidXQgSSBmaWd1cmVkIHRoaXMgTU1YCisjCWltcGxlbWVudGF0aW9uIGlzIGV2ZW4gZmFzdGVyIGFueXdheSwgc28gd2h5IGJvdGhlcj8gQXMgZm9yCisjCXByZS1NTVggQU1EIGNvcmVbc10sIHRoZSBpbXByb3ZlbWVudCBjb2VmZmljaWVudCBpcyBtb3JlCisjCXRoYW4gbGlrZWx5IHRvIHZhcnkgYW55d2F5IGFuZCBJIGRvbid0IGtub3cgaG93LiBCdXQgdGhlCisjCWxlYXN0IEkga25vdyBpcyB0aGF0IGdjYy1nZW5lcmF0ZWQgY29kZSBjb21waWxlZCB3aXRoCisjCS1ETF9FTkRJQU4gYW5kIC1ET1BFTlNTTF9TTUFMTF9GT09UUFJJTlQgW3NlZSBDIG1vZHVsZSBmb3IKKyMJZGV0YWlsc10gYW5kIG9wdGltaXplZCBmb3IgUGVudGl1bSB3YXMgb2JzZXJ2ZWQgdG8gcGVyZm9ybQorIwkqYmV0dGVyKiBvbiBQZW50aXVtIDEwMCB0aGFuIHVucm9sbGVkIG5vbi1NTVggYXNzZW1ibGVyCisjCWxvb3AuLi4gU28gd2UganVzdCBzYXkgdGhhdCBJIGRvbid0IGtub3cgaWYgbWFpbnRhaW5pbmcKKyMJbm9uLU1NWCBpbXBsZW1lbnRhdGlvbiB3b3VsZCBhY3R1YWxseSBwYXkgb2ZmLCBidXQgdGlsbAorIwlvcHBvc2l0ZSBpcyBwcm92ZWQgInVubGlrZWx5IiBpcyBhc3N1bWVkLgorCitwdXNoKEBJTkMsIi4uL0NWUy9IRUFEL29wZW5zc2wvY3J5cHRvL3Blcmxhc20iLCIuLi8uLi9wZXJsYXNtIik7CityZXF1aXJlICJ4ODZhc20ucGwiOworCismYXNtX2luaXQoJEFSR1ZbMF0sIndwLW1teC5wbCIpOworCitzdWIgTCgpICB7ICZkYXRhX2J5dGUoQF8pOyB9CitzdWIgTEwoKQorewlpZgkoJFNDQUxFPT0yKQl7ICZkYXRhX2J5dGUoQF8pOyAmZGF0YV9ieXRlKEBfKTsgfQorCWVsc2lmCSgkU0NBTEU9PTgpCXsgZm9yICgkaT0wOyRpPDg7JGkrKykgeworCQkJCQkmZGF0YV9ieXRlKEBfKTsKKwkJCQkJdW5zaGlmdChAXyxwb3AoQF8pKTsKKwkJCQkgIH0KKwkJCQl9CisJZWxzZQkJCXsgZGllICJ1bnZhbGlkIFNDQUxFIHZhbHVlIjsgfQorfQorCitzdWIgc2NhbGUoKQorewlpZgkoJFNDQUxFPT0yKQl7ICZsZWEoQF9bMF0sJkRXUCgwLEBfWzFdLEBfWzFdKSk7IH0KKwllbHNpZgkoJFNDQUxFPT04KQl7ICZsZWEoQF9bMF0sJkRXUCgwLCIiLEBfWzFdLDgpKTsgIH0KKwllbHNlCQkJeyBkaWUgInVudmFsaWQgU0NBTEUgdmFsdWUiOyAgICAgICB9Cit9CisKK3N1YiByb3coKQorewlpZgkoJFNDQUxFPT0yKQl7ICgoOC1zaGlmdCkmNyk7IH0KKwllbHNpZgkoJFNDQUxFPT04KQl7ICg4KnNoaWZ0KTsgICAgIH0KKwllbHNlCQkJeyBkaWUgInVudmFsaWQgU0NBTEUgdmFsdWUiOyB9Cit9CisKKyR0Ymw9ImVicCI7CitAbW09KCJtbTAiLCJtbTEiLCJtbTIiLCJtbTMiLCJtbTQiLCJtbTUiLCJtbTYiLCJtbTciKTsKKworJmZ1bmN0aW9uX2JlZ2luX0IoIndoaXJscG9vbF9ibG9ja19tbXgiKTsKKwkmcHVzaAkoImVicCIpOworCSZwdXNoCSgiZWJ4Iik7CisJJnB1c2gJKCJlc2kiKTsKKwkmcHVzaAkoImVkaSIpOworCisJJm1vdgkoImVzaSIsJndwYXJhbSgwKSk7CQkjIGhhc2ggdmFsdWUKKwkmbW92CSgiZWRpIiwmd3BhcmFtKDEpKTsJCSMgaW5wdXQgZGF0YSBzdHJlYW0KKwkmbW92CSgiZWJwIiwmd3BhcmFtKDIpKTsJCSMgbnVtYmVyIG9mIGNodW5rcyBpbiBpbnB1dAorCisJJm1vdgkoImVheCIsImVzcCIpOwkJCSMgY29weSBzdGFjayBwb2ludGVyCisJJnN1YgkoImVzcCIsMTI4KzIwKTsJCQkjIGFsbG9jYXRlIGZyYW1lCisJJmFuZAkoImVzcCIsLTY0KTsJCQkjIGFsaWduIGZvciBjYWNoZS1saW5lCisKKwkmbGVhCSgiZWJ4IiwmRFdQKDEyOCwiZXNwIikpOworCSZtb3YJKCZEV1AoMCwiZWJ4IiksImVzaSIpOwkJIyBzYXZlIHBhcmFtZXRlciBibG9jaworCSZtb3YJKCZEV1AoNCwiZWJ4IiksImVkaSIpOworCSZtb3YJKCZEV1AoOCwiZWJ4IiksImVicCIpOworCSZtb3YJKCZEV1AoMTYsImVieCIpLCJlYXgiKTsJCSMgc2F2ZWQgc3RhY2sgcG9pbnRlcgorCisJJmNhbGwJKCZsYWJlbCgicGljX3BvaW50IikpOworJnNldF9sYWJlbCgicGljX3BvaW50Iik7CisJJmJsaW5kcG9wKCR0YmwpOworICAgICAgICAmbGVhICAgICgkdGJsLCZEV1AoJmxhYmVsKCJ0YWJsZSIpLiItIi4mbGFiZWwoInBpY19wb2ludCIpLCR0YmwpKTsKKworCSZ4b3IJKCJlY3giLCJlY3giKTsKKwkmeG9yCSgiZWR4IiwiZWR4Iik7CisKKwlmb3IoJGk9MDskaTw4OyRpKyspIHsgJm1vdnEoQG1tWyRpXSwmUVdQKCRpKjgsImVzaSIpKTsgfSAgICAjIEw9SAorJnNldF9sYWJlbCgib3V0ZXJsb29wIik7CisJZm9yKCRpPTA7JGk8ODskaSsrKSB7ICZtb3ZxKCZRV1AoJGkqOCwiZXNwIiksQG1tWyRpXSk7IH0gICAgIyBLPUgKKwlmb3IoJGk9MDskaTw4OyRpKyspIHsgJnB4b3IoQG1tWyRpXSwmUVdQKCRpKjgsImVkaSIpKTsgfSAgICAjIExePWlucAorCWZvcigkaT0wOyRpPDg7JGkrKykgeyAmbW92cSgmUVdQKDY0KyRpKjgsImVzcCIpLEBtbVskaV0pOyB9ICNTPUwKKworCSZ4b3IJKCJlc2kiLCJlc2kiKTsKKwkmbW92CSgmRFdQKDEyLCJlYngiKSwiZXNpIik7CQkjIHplcm8gcm91bmQgY291bnRlcgorCismc2V0X2xhYmVsKCJyb3VuZCIsMTYpOworCSZtb3ZxCShAbW1bMF0sJkRXUCgyMDQ4KiRTQ0FMRSwkdGJsLCJlc2kiLDgpKTsJIyByY1tyXQorCSZtb3YJKCJlYXgiLCZEV1AoMCwiZXNwIikpOworCSZtb3YJKCJlYngiLCZEV1AoNCwiZXNwIikpOworZm9yKCRpPTA7JGk8ODskaSsrKSB7CisgICAgbXkgJGZ1bmMgPSAoJGk9PTApPyBtb3ZxIDogcHhvcjsKKwkmbW92YgkoJkxCKCJlY3giKSwmTEIoImVheCIpKTsKKwkmbW92YgkoJkxCKCJlZHgiKSwmSEIoImVheCIpKTsKKwkmc2NhbGUJKCJlc2kiLCJlY3giKTsKKwkmc2NhbGUJKCJlZGkiLCJlZHgiKTsKKwkmc2hyCSgiZWF4IiwxNik7CisJJnB4b3IJKEBtbVswXSwmUVdQKCZyb3coMCksJHRibCwiZXNpIiw4KSk7CisJJiRmdW5jCShAbW1bMV0sJlFXUCgmcm93KDEpLCR0YmwsImVkaSIsOCkpOworCSZtb3ZiCSgmTEIoImVjeCIpLCZMQigiZWF4IikpOworCSZtb3ZiCSgmTEIoImVkeCIpLCZIQigiZWF4IikpOworCSZtb3YJKCJlYXgiLCZEV1AoKCRpKzEpKjgsImVzcCIpKTsKKwkmc2NhbGUJKCJlc2kiLCJlY3giKTsKKwkmc2NhbGUJKCJlZGkiLCJlZHgiKTsKKwkmJGZ1bmMJKEBtbVsyXSwmUVdQKCZyb3coMiksJHRibCwiZXNpIiw4KSk7CisJJiRmdW5jCShAbW1bM10sJlFXUCgmcm93KDMpLCR0YmwsImVkaSIsOCkpOworCSZtb3ZiCSgmTEIoImVjeCIpLCZMQigiZWJ4IikpOworCSZtb3ZiCSgmTEIoImVkeCIpLCZIQigiZWJ4IikpOworCSZzY2FsZQkoImVzaSIsImVjeCIpOworCSZzY2FsZQkoImVkaSIsImVkeCIpOworCSZzaHIJKCJlYngiLDE2KTsKKwkmJGZ1bmMJKEBtbVs0XSwmUVdQKCZyb3coNCksJHRibCwiZXNpIiw4KSk7CisJJiRmdW5jCShAbW1bNV0sJlFXUCgmcm93KDUpLCR0YmwsImVkaSIsOCkpOworCSZtb3ZiCSgmTEIoImVjeCIpLCZMQigiZWJ4IikpOworCSZtb3ZiCSgmTEIoImVkeCIpLCZIQigiZWJ4IikpOworCSZtb3YJKCJlYngiLCZEV1AoKCRpKzEpKjgrNCwiZXNwIikpOworCSZzY2FsZQkoImVzaSIsImVjeCIpOworCSZzY2FsZQkoImVkaSIsImVkeCIpOworCSYkZnVuYwkoQG1tWzZdLCZRV1AoJnJvdyg2KSwkdGJsLCJlc2kiLDgpKTsKKwkmJGZ1bmMJKEBtbVs3XSwmUVdQKCZyb3coNyksJHRibCwiZWRpIiw4KSk7CisgICAgcHVzaChAbW0sc2hpZnQoQG1tKSk7Cit9CisKKwlmb3IoJGk9MDskaTw4OyRpKyspIHsgJm1vdnEoJlFXUCgkaSo4LCJlc3AiKSxAbW1bJGldKTsgfSAgICAjIEs9TAorCitmb3IoJGk9MDskaTw4OyRpKyspIHsKKwkmbW92YgkoJkxCKCJlY3giKSwmTEIoImVheCIpKTsKKwkmbW92YgkoJkxCKCJlZHgiKSwmSEIoImVheCIpKTsKKwkmc2NhbGUJKCJlc2kiLCJlY3giKTsKKwkmc2NhbGUJKCJlZGkiLCJlZHgiKTsKKwkmc2hyCSgiZWF4IiwxNik7CisJJnB4b3IJKEBtbVswXSwmUVdQKCZyb3coMCksJHRibCwiZXNpIiw4KSk7CisJJnB4b3IJKEBtbVsxXSwmUVdQKCZyb3coMSksJHRibCwiZWRpIiw4KSk7CisJJm1vdmIJKCZMQigiZWN4IiksJkxCKCJlYXgiKSk7CisJJm1vdmIJKCZMQigiZWR4IiksJkhCKCJlYXgiKSk7CisJJm1vdgkoImVheCIsJkRXUCg2NCsoJGkrMSkqOCwiZXNwIikpCQlpZiAoJGk8Nyk7CisJJnNjYWxlCSgiZXNpIiwiZWN4Iik7CisJJnNjYWxlCSgiZWRpIiwiZWR4Iik7CisJJnB4b3IJKEBtbVsyXSwmUVdQKCZyb3coMiksJHRibCwiZXNpIiw4KSk7CisJJnB4b3IJKEBtbVszXSwmUVdQKCZyb3coMyksJHRibCwiZWRpIiw4KSk7CisJJm1vdmIJKCZMQigiZWN4IiksJkxCKCJlYngiKSk7CisJJm1vdmIJKCZMQigiZWR4IiksJkhCKCJlYngiKSk7CisJJnNjYWxlCSgiZXNpIiwiZWN4Iik7CisJJnNjYWxlCSgiZWRpIiwiZWR4Iik7CisJJnNocgkoImVieCIsMTYpOworCSZweG9yCShAbW1bNF0sJlFXUCgmcm93KDQpLCR0YmwsImVzaSIsOCkpOworCSZweG9yCShAbW1bNV0sJlFXUCgmcm93KDUpLCR0YmwsImVkaSIsOCkpOworCSZtb3ZiCSgmTEIoImVjeCIpLCZMQigiZWJ4IikpOworCSZtb3ZiCSgmTEIoImVkeCIpLCZIQigiZWJ4IikpOworCSZtb3YJKCJlYngiLCZEV1AoNjQrKCRpKzEpKjgrNCwiZXNwIikpCWlmICgkaTw3KTsKKwkmc2NhbGUJKCJlc2kiLCJlY3giKTsKKwkmc2NhbGUJKCJlZGkiLCJlZHgiKTsKKwkmcHhvcgkoQG1tWzZdLCZRV1AoJnJvdyg2KSwkdGJsLCJlc2kiLDgpKTsKKwkmcHhvcgkoQG1tWzddLCZRV1AoJnJvdyg3KSwkdGJsLCJlZGkiLDgpKTsKKyAgICBwdXNoKEBtbSxzaGlmdChAbW0pKTsKK30KKwkmbGVhCSgiZWJ4IiwmRFdQKDEyOCwiZXNwIikpOworCSZtb3YJKCJlc2kiLCZEV1AoMTIsImVieCIpKTsJCSMgcHVsbCByb3VuZCBjb3VudGVyCisJJmFkZAkoImVzaSIsMSk7CisJJmNtcAkoImVzaSIsMTApOworCSZqZQkoJmxhYmVsKCJyb3VuZHNkb25lIikpOworCisJJm1vdgkoJkRXUCgxMiwiZWJ4IiksImVzaSIpOwkJIyB1cGRhdGUgcm91bmQgY291bnRlcgorCWZvcigkaT0wOyRpPDg7JGkrKykgeyAmbW92cSgmUVdQKDY0KyRpKjgsImVzcCIpLEBtbVskaV0pOyB9ICMgUz1MCisJJmptcAkoJmxhYmVsKCJyb3VuZCIpKTsKKworJnNldF9sYWJlbCgicm91bmRzZG9uZSIsMTYpOworCSZtb3YJKCJlc2kiLCZEV1AoMCwiZWJ4IikpOwkJIyByZWxvYWQgYXJndW1lbnQgYmxvY2sKKwkmbW92CSgiZWRpIiwmRFdQKDQsImVieCIpKTsKKwkmbW92CSgiZWF4IiwmRFdQKDgsImVieCIpKTsKKworCWZvcigkaT0wOyRpPDg7JGkrKykgeyAmcHhvcihAbW1bJGldLCZRV1AoJGkqOCwiZWRpIikpOyB9ICAgICMgTF49aW5wCisJZm9yKCRpPTA7JGk8ODskaSsrKSB7ICZweG9yKEBtbVskaV0sJlFXUCgkaSo4LCJlc2kiKSk7IH0gICAgIyBMXj1ICisJZm9yKCRpPTA7JGk8ODskaSsrKSB7ICZtb3ZxKCZRV1AoJGkqOCwiZXNpIiksQG1tWyRpXSk7IH0gICAgIyBIPUwKKworCSZsZWEJKCJlZGkiLCZEV1AoNjQsImVkaSIpKTsJCSMgaW5wKz02NAorCSZzdWIJKCJlYXgiLDEpOwkJCSMgbnVtLS0KKwkmanoJKCZsYWJlbCgiYWxsZG9uZSIpKTsKKwkmbW92CSgmRFdQKDQsImVieCIpLCJlZGkiKTsJCSMgdXBkYXRlIGFyZ3VtZW50IGJsb2NrCisJJm1vdgkoJkRXUCg4LCJlYngiKSwiZWF4Iik7CisJJmptcAkoJmxhYmVsKCJvdXRlcmxvb3AiKSk7CisKKyZzZXRfbGFiZWwoImFsbGRvbmUiKTsKKwkmZW1tcwkoKTsKKwkmbW92CSgiZXNwIiwmRFdQKDE2LCJlYngiKSk7CQkjIHJlc3RvcmUgc2F2ZWQgc3RhY2sgcG9pbnRlcgorCSZwb3AJKCJlZGkiKTsKKwkmcG9wCSgiZXNpIik7CisJJnBvcAkoImVieCIpOworCSZwb3AJKCJlYnAiKTsKKwkmcmV0CSgpOworCismYWxpZ24oNjQpOworJnNldF9sYWJlbCgidGFibGUiKTsKKwkmTEwoMHgxOCwweDE4LDB4NjAsMHgxOCwweGMwLDB4NzgsMHgzMCwweGQ4KTsKKwkmTEwoMHgyMywweDIzLDB4OGMsMHgyMywweDA1LDB4YWYsMHg0NiwweDI2KTsKKwkmTEwoMHhjNiwweGM2LDB4M2YsMHhjNiwweDdlLDB4ZjksMHg5MSwweGI4KTsKKwkmTEwoMHhlOCwweGU4LDB4ODcsMHhlOCwweDEzLDB4NmYsMHhjZCwweGZiKTsKKwkmTEwoMHg4NywweDg3LDB4MjYsMHg4NywweDRjLDB4YTEsMHgxMywweGNiKTsKKwkmTEwoMHhiOCwweGI4LDB4ZGEsMHhiOCwweGE5LDB4NjIsMHg2ZCwweDExKTsKKwkmTEwoMHgwMSwweDAxLDB4MDQsMHgwMSwweDA4LDB4MDUsMHgwMiwweDA5KTsKKwkmTEwoMHg0ZiwweDRmLDB4MjEsMHg0ZiwweDQyLDB4NmUsMHg5ZSwweDBkKTsKKwkmTEwoMHgzNiwweDM2LDB4ZDgsMHgzNiwweGFkLDB4ZWUsMHg2YywweDliKTsKKwkmTEwoMHhhNiwweGE2LDB4YTIsMHhhNiwweDU5LDB4MDQsMHg1MSwweGZmKTsKKwkmTEwoMHhkMiwweGQyLDB4NmYsMHhkMiwweGRlLDB4YmQsMHhiOSwweDBjKTsKKwkmTEwoMHhmNSwweGY1LDB4ZjMsMHhmNSwweGZiLDB4MDYsMHhmNywweDBlKTsKKwkmTEwoMHg3OSwweDc5LDB4ZjksMHg3OSwweGVmLDB4ODAsMHhmMiwweDk2KTsKKwkmTEwoMHg2ZiwweDZmLDB4YTEsMHg2ZiwweDVmLDB4Y2UsMHhkZSwweDMwKTsKKwkmTEwoMHg5MSwweDkxLDB4N2UsMHg5MSwweGZjLDB4ZWYsMHgzZiwweDZkKTsKKwkmTEwoMHg1MiwweDUyLDB4NTUsMHg1MiwweGFhLDB4MDcsMHhhNCwweGY4KTsKKwkmTEwoMHg2MCwweDYwLDB4OWQsMHg2MCwweDI3LDB4ZmQsMHhjMCwweDQ3KTsKKwkmTEwoMHhiYywweGJjLDB4Y2EsMHhiYywweDg5LDB4NzYsMHg2NSwweDM1KTsKKwkmTEwoMHg5YiwweDliLDB4NTYsMHg5YiwweGFjLDB4Y2QsMHgyYiwweDM3KTsKKwkmTEwoMHg4ZSwweDhlLDB4MDIsMHg4ZSwweDA0LDB4OGMsMHgwMSwweDhhKTsKKwkmTEwoMHhhMywweGEzLDB4YjYsMHhhMywweDcxLDB4MTUsMHg1YiwweGQyKTsKKwkmTEwoMHgwYywweDBjLDB4MzAsMHgwYywweDYwLDB4M2MsMHgxOCwweDZjKTsKKwkmTEwoMHg3YiwweDdiLDB4ZjEsMHg3YiwweGZmLDB4OGEsMHhmNiwweDg0KTsKKwkmTEwoMHgzNSwweDM1LDB4ZDQsMHgzNSwweGI1LDB4ZTEsMHg2YSwweDgwKTsKKwkmTEwoMHgxZCwweDFkLDB4NzQsMHgxZCwweGU4LDB4NjksMHgzYSwweGY1KTsKKwkmTEwoMHhlMCwweGUwLDB4YTcsMHhlMCwweDUzLDB4NDcsMHhkZCwweGIzKTsKKwkmTEwoMHhkNywweGQ3LDB4N2IsMHhkNywweGY2LDB4YWMsMHhiMywweDIxKTsKKwkmTEwoMHhjMiwweGMyLDB4MmYsMHhjMiwweDVlLDB4ZWQsMHg5OSwweDljKTsKKwkmTEwoMHgyZSwweDJlLDB4YjgsMHgyZSwweDZkLDB4OTYsMHg1YywweDQzKTsKKwkmTEwoMHg0YiwweDRiLDB4MzEsMHg0YiwweDYyLDB4N2EsMHg5NiwweDI5KTsKKwkmTEwoMHhmZSwweGZlLDB4ZGYsMHhmZSwweGEzLDB4MjEsMHhlMSwweDVkKTsKKwkmTEwoMHg1NywweDU3LDB4NDEsMHg1NywweDgyLDB4MTYsMHhhZSwweGQ1KTsKKwkmTEwoMHgxNSwweDE1LDB4NTQsMHgxNSwweGE4LDB4NDEsMHgyYSwweGJkKTsKKwkmTEwoMHg3NywweDc3LDB4YzEsMHg3NywweDlmLDB4YjYsMHhlZSwweGU4KTsKKwkmTEwoMHgzNywweDM3LDB4ZGMsMHgzNywweGE1LDB4ZWIsMHg2ZSwweDkyKTsKKwkmTEwoMHhlNSwweGU1LDB4YjMsMHhlNSwweDdiLDB4NTYsMHhkNywweDllKTsKKwkmTEwoMHg5ZiwweDlmLDB4NDYsMHg5ZiwweDhjLDB4ZDksMHgyMywweDEzKTsKKwkmTEwoMHhmMCwweGYwLDB4ZTcsMHhmMCwweGQzLDB4MTcsMHhmZCwweDIzKTsKKwkmTEwoMHg0YSwweDRhLDB4MzUsMHg0YSwweDZhLDB4N2YsMHg5NCwweDIwKTsKKwkmTEwoMHhkYSwweGRhLDB4NGYsMHhkYSwweDllLDB4OTUsMHhhOSwweDQ0KTsKKwkmTEwoMHg1OCwweDU4LDB4N2QsMHg1OCwweGZhLDB4MjUsMHhiMCwweGEyKTsKKwkmTEwoMHhjOSwweGM5LDB4MDMsMHhjOSwweDA2LDB4Y2EsMHg4ZiwweGNmKTsKKwkmTEwoMHgyOSwweDI5LDB4YTQsMHgyOSwweDU1LDB4OGQsMHg1MiwweDdjKTsKKwkmTEwoMHgwYSwweDBhLDB4MjgsMHgwYSwweDUwLDB4MjIsMHgxNCwweDVhKTsKKwkmTEwoMHhiMSwweGIxLDB4ZmUsMHhiMSwweGUxLDB4NGYsMHg3ZiwweDUwKTsKKwkmTEwoMHhhMCwweGEwLDB4YmEsMHhhMCwweDY5LDB4MWEsMHg1ZCwweGM5KTsKKwkmTEwoMHg2YiwweDZiLDB4YjEsMHg2YiwweDdmLDB4ZGEsMHhkNiwweDE0KTsKKwkmTEwoMHg4NSwweDg1LDB4MmUsMHg4NSwweDVjLDB4YWIsMHgxNywweGQ5KTsKKwkmTEwoMHhiZCwweGJkLDB4Y2UsMHhiZCwweDgxLDB4NzMsMHg2NywweDNjKTsKKwkmTEwoMHg1ZCwweDVkLDB4NjksMHg1ZCwweGQyLDB4MzQsMHhiYSwweDhmKTsKKwkmTEwoMHgxMCwweDEwLDB4NDAsMHgxMCwweDgwLDB4NTAsMHgyMCwweDkwKTsKKwkmTEwoMHhmNCwweGY0LDB4ZjcsMHhmNCwweGYzLDB4MDMsMHhmNSwweDA3KTsKKwkmTEwoMHhjYiwweGNiLDB4MGIsMHhjYiwweDE2LDB4YzAsMHg4YiwweGRkKTsKKwkmTEwoMHgzZSwweDNlLDB4ZjgsMHgzZSwweGVkLDB4YzYsMHg3YywweGQzKTsKKwkmTEwoMHgwNSwweDA1LDB4MTQsMHgwNSwweDI4LDB4MTEsMHgwYSwweDJkKTsKKwkmTEwoMHg2NywweDY3LDB4ODEsMHg2NywweDFmLDB4ZTYsMHhjZSwweDc4KTsKKwkmTEwoMHhlNCwweGU0LDB4YjcsMHhlNCwweDczLDB4NTMsMHhkNSwweDk3KTsKKwkmTEwoMHgyNywweDI3LDB4OWMsMHgyNywweDI1LDB4YmIsMHg0ZSwweDAyKTsKKwkmTEwoMHg0MSwweDQxLDB4MTksMHg0MSwweDMyLDB4NTgsMHg4MiwweDczKTsKKwkmTEwoMHg4YiwweDhiLDB4MTYsMHg4YiwweDJjLDB4OWQsMHgwYiwweGE3KTsKKwkmTEwoMHhhNywweGE3LDB4YTYsMHhhNywweDUxLDB4MDEsMHg1MywweGY2KTsKKwkmTEwoMHg3ZCwweDdkLDB4ZTksMHg3ZCwweGNmLDB4OTQsMHhmYSwweGIyKTsKKwkmTEwoMHg5NSwweDk1LDB4NmUsMHg5NSwweGRjLDB4ZmIsMHgzNywweDQ5KTsKKwkmTEwoMHhkOCwweGQ4LDB4NDcsMHhkOCwweDhlLDB4OWYsMHhhZCwweDU2KTsKKwkmTEwoMHhmYiwweGZiLDB4Y2IsMHhmYiwweDhiLDB4MzAsMHhlYiwweDcwKTsKKwkmTEwoMHhlZSwweGVlLDB4OWYsMHhlZSwweDIzLDB4NzEsMHhjMSwweGNkKTsKKwkmTEwoMHg3YywweDdjLDB4ZWQsMHg3YywweGM3LDB4OTEsMHhmOCwweGJiKTsKKwkmTEwoMHg2NiwweDY2LDB4ODUsMHg2NiwweDE3LDB4ZTMsMHhjYywweDcxKTsKKwkmTEwoMHhkZCwweGRkLDB4NTMsMHhkZCwweGE2LDB4OGUsMHhhNywweDdiKTsKKwkmTEwoMHgxNywweDE3LDB4NWMsMHgxNywweGI4LDB4NGIsMHgyZSwweGFmKTsKKwkmTEwoMHg0NywweDQ3LDB4MDEsMHg0NywweDAyLDB4NDYsMHg4ZSwweDQ1KTsKKwkmTEwoMHg5ZSwweDllLDB4NDIsMHg5ZSwweDg0LDB4ZGMsMHgyMSwweDFhKTsKKwkmTEwoMHhjYSwweGNhLDB4MGYsMHhjYSwweDFlLDB4YzUsMHg4OSwweGQ0KTsKKwkmTEwoMHgyZCwweDJkLDB4YjQsMHgyZCwweDc1LDB4OTksMHg1YSwweDU4KTsKKwkmTEwoMHhiZiwweGJmLDB4YzYsMHhiZiwweDkxLDB4NzksMHg2MywweDJlKTsKKwkmTEwoMHgwNywweDA3LDB4MWMsMHgwNywweDM4LDB4MWIsMHgwZSwweDNmKTsKKwkmTEwoMHhhZCwweGFkLDB4OGUsMHhhZCwweDAxLDB4MjMsMHg0NywweGFjKTsKKwkmTEwoMHg1YSwweDVhLDB4NzUsMHg1YSwweGVhLDB4MmYsMHhiNCwweGIwKTsKKwkmTEwoMHg4MywweDgzLDB4MzYsMHg4MywweDZjLDB4YjUsMHgxYiwweGVmKTsKKwkmTEwoMHgzMywweDMzLDB4Y2MsMHgzMywweDg1LDB4ZmYsMHg2NiwweGI2KTsKKwkmTEwoMHg2MywweDYzLDB4OTEsMHg2MywweDNmLDB4ZjIsMHhjNiwweDVjKTsKKwkmTEwoMHgwMiwweDAyLDB4MDgsMHgwMiwweDEwLDB4MGEsMHgwNCwweDEyKTsKKwkmTEwoMHhhYSwweGFhLDB4OTIsMHhhYSwweDM5LDB4MzgsMHg0OSwweDkzKTsKKwkmTEwoMHg3MSwweDcxLDB4ZDksMHg3MSwweGFmLDB4YTgsMHhlMiwweGRlKTsKKwkmTEwoMHhjOCwweGM4LDB4MDcsMHhjOCwweDBlLDB4Y2YsMHg4ZCwweGM2KTsKKwkmTEwoMHgxOSwweDE5LDB4NjQsMHgxOSwweGM4LDB4N2QsMHgzMiwweGQxKTsKKwkmTEwoMHg0OSwweDQ5LDB4MzksMHg0OSwweDcyLDB4NzAsMHg5MiwweDNiKTsKKwkmTEwoMHhkOSwweGQ5LDB4NDMsMHhkOSwweDg2LDB4OWEsMHhhZiwweDVmKTsKKwkmTEwoMHhmMiwweGYyLDB4ZWYsMHhmMiwweGMzLDB4MWQsMHhmOSwweDMxKTsKKwkmTEwoMHhlMywweGUzLDB4YWIsMHhlMywweDRiLDB4NDgsMHhkYiwweGE4KTsKKwkmTEwoMHg1YiwweDViLDB4NzEsMHg1YiwweGUyLDB4MmEsMHhiNiwweGI5KTsKKwkmTEwoMHg4OCwweDg4LDB4MWEsMHg4OCwweDM0LDB4OTIsMHgwZCwweGJjKTsKKwkmTEwoMHg5YSwweDlhLDB4NTIsMHg5YSwweGE0LDB4YzgsMHgyOSwweDNlKTsKKwkmTEwoMHgyNiwweDI2LDB4OTgsMHgyNiwweDJkLDB4YmUsMHg0YywweDBiKTsKKwkmTEwoMHgzMiwweDMyLDB4YzgsMHgzMiwweDhkLDB4ZmEsMHg2NCwweGJmKTsKKwkmTEwoMHhiMCwweGIwLDB4ZmEsMHhiMCwweGU5LDB4NGEsMHg3ZCwweDU5KTsKKwkmTEwoMHhlOSwweGU5LDB4ODMsMHhlOSwweDFiLDB4NmEsMHhjZiwweGYyKTsKKwkmTEwoMHgwZiwweDBmLDB4M2MsMHgwZiwweDc4LDB4MzMsMHgxZSwweDc3KTsKKwkmTEwoMHhkNSwweGQ1LDB4NzMsMHhkNSwweGU2LDB4YTYsMHhiNywweDMzKTsKKwkmTEwoMHg4MCwweDgwLDB4M2EsMHg4MCwweDc0LDB4YmEsMHgxZCwweGY0KTsKKwkmTEwoMHhiZSwweGJlLDB4YzIsMHhiZSwweDk5LDB4N2MsMHg2MSwweDI3KTsKKwkmTEwoMHhjZCwweGNkLDB4MTMsMHhjZCwweDI2LDB4ZGUsMHg4NywweGViKTsKKwkmTEwoMHgzNCwweDM0LDB4ZDAsMHgzNCwweGJkLDB4ZTQsMHg2OCwweDg5KTsKKwkmTEwoMHg0OCwweDQ4LDB4M2QsMHg0OCwweDdhLDB4NzUsMHg5MCwweDMyKTsKKwkmTEwoMHhmZiwweGZmLDB4ZGIsMHhmZiwweGFiLDB4MjQsMHhlMywweDU0KTsKKwkmTEwoMHg3YSwweDdhLDB4ZjUsMHg3YSwweGY3LDB4OGYsMHhmNCwweDhkKTsKKwkmTEwoMHg5MCwweDkwLDB4N2EsMHg5MCwweGY0LDB4ZWEsMHgzZCwweDY0KTsKKwkmTEwoMHg1ZiwweDVmLDB4NjEsMHg1ZiwweGMyLDB4M2UsMHhiZSwweDlkKTsKKwkmTEwoMHgyMCwweDIwLDB4ODAsMHgyMCwweDFkLDB4YTAsMHg0MCwweDNkKTsKKwkmTEwoMHg2OCwweDY4LDB4YmQsMHg2OCwweDY3LDB4ZDUsMHhkMCwweDBmKTsKKwkmTEwoMHgxYSwweDFhLDB4NjgsMHgxYSwweGQwLDB4NzIsMHgzNCwweGNhKTsKKwkmTEwoMHhhZSwweGFlLDB4ODIsMHhhZSwweDE5LDB4MmMsMHg0MSwweGI3KTsKKwkmTEwoMHhiNCwweGI0LDB4ZWEsMHhiNCwweGM5LDB4NWUsMHg3NSwweDdkKTsKKwkmTEwoMHg1NCwweDU0LDB4NGQsMHg1NCwweDlhLDB4MTksMHhhOCwweGNlKTsKKwkmTEwoMHg5MywweDkzLDB4NzYsMHg5MywweGVjLDB4ZTUsMHgzYiwweDdmKTsKKwkmTEwoMHgyMiwweDIyLDB4ODgsMHgyMiwweDBkLDB4YWEsMHg0NCwweDJmKTsKKwkmTEwoMHg2NCwweDY0LDB4OGQsMHg2NCwweDA3LDB4ZTksMHhjOCwweDYzKTsKKwkmTEwoMHhmMSwweGYxLDB4ZTMsMHhmMSwweGRiLDB4MTIsMHhmZiwweDJhKTsKKwkmTEwoMHg3MywweDczLDB4ZDEsMHg3MywweGJmLDB4YTIsMHhlNiwweGNjKTsKKwkmTEwoMHgxMiwweDEyLDB4NDgsMHgxMiwweDkwLDB4NWEsMHgyNCwweDgyKTsKKwkmTEwoMHg0MCwweDQwLDB4MWQsMHg0MCwweDNhLDB4NWQsMHg4MCwweDdhKTsKKwkmTEwoMHgwOCwweDA4LDB4MjAsMHgwOCwweDQwLDB4MjgsMHgxMCwweDQ4KTsKKwkmTEwoMHhjMywweGMzLDB4MmIsMHhjMywweDU2LDB4ZTgsMHg5YiwweDk1KTsKKwkmTEwoMHhlYywweGVjLDB4OTcsMHhlYywweDMzLDB4N2IsMHhjNSwweGRmKTsKKwkmTEwoMHhkYiwweGRiLDB4NGIsMHhkYiwweDk2LDB4OTAsMHhhYiwweDRkKTsKKwkmTEwoMHhhMSwweGExLDB4YmUsMHhhMSwweDYxLDB4MWYsMHg1ZiwweGMwKTsKKwkmTEwoMHg4ZCwweDhkLDB4MGUsMHg4ZCwweDFjLDB4ODMsMHgwNywweDkxKTsKKwkmTEwoMHgzZCwweDNkLDB4ZjQsMHgzZCwweGY1LDB4YzksMHg3YSwweGM4KTsKKwkmTEwoMHg5NywweDk3LDB4NjYsMHg5NywweGNjLDB4ZjEsMHgzMywweDViKTsKKwkmTEwoMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwKTsKKwkmTEwoMHhjZiwweGNmLDB4MWIsMHhjZiwweDM2LDB4ZDQsMHg4MywweGY5KTsKKwkmTEwoMHgyYiwweDJiLDB4YWMsMHgyYiwweDQ1LDB4ODcsMHg1NiwweDZlKTsKKwkmTEwoMHg3NiwweDc2LDB4YzUsMHg3NiwweDk3LDB4YjMsMHhlYywweGUxKTsKKwkmTEwoMHg4MiwweDgyLDB4MzIsMHg4MiwweDY0LDB4YjAsMHgxOSwweGU2KTsKKwkmTEwoMHhkNiwweGQ2LDB4N2YsMHhkNiwweGZlLDB4YTksMHhiMSwweDI4KTsKKwkmTEwoMHgxYiwweDFiLDB4NmMsMHgxYiwweGQ4LDB4NzcsMHgzNiwweGMzKTsKKwkmTEwoMHhiNSwweGI1LDB4ZWUsMHhiNSwweGMxLDB4NWIsMHg3NywweDc0KTsKKwkmTEwoMHhhZiwweGFmLDB4ODYsMHhhZiwweDExLDB4MjksMHg0MywweGJlKTsKKwkmTEwoMHg2YSwweDZhLDB4YjUsMHg2YSwweDc3LDB4ZGYsMHhkNCwweDFkKTsKKwkmTEwoMHg1MCwweDUwLDB4NWQsMHg1MCwweGJhLDB4MGQsMHhhMCwweGVhKTsKKwkmTEwoMHg0NSwweDQ1LDB4MDksMHg0NSwweDEyLDB4NGMsMHg4YSwweDU3KTsKKwkmTEwoMHhmMywweGYzLDB4ZWIsMHhmMywweGNiLDB4MTgsMHhmYiwweDM4KTsKKwkmTEwoMHgzMCwweDMwLDB4YzAsMHgzMCwweDlkLDB4ZjAsMHg2MCwweGFkKTsKKwkmTEwoMHhlZiwweGVmLDB4OWIsMHhlZiwweDJiLDB4NzQsMHhjMywweGM0KTsKKwkmTEwoMHgzZiwweDNmLDB4ZmMsMHgzZiwweGU1LDB4YzMsMHg3ZSwweGRhKTsKKwkmTEwoMHg1NSwweDU1LDB4NDksMHg1NSwweDkyLDB4MWMsMHhhYSwweGM3KTsKKwkmTEwoMHhhMiwweGEyLDB4YjIsMHhhMiwweDc5LDB4MTAsMHg1OSwweGRiKTsKKwkmTEwoMHhlYSwweGVhLDB4OGYsMHhlYSwweDAzLDB4NjUsMHhjOSwweGU5KTsKKwkmTEwoMHg2NSwweDY1LDB4ODksMHg2NSwweDBmLDB4ZWMsMHhjYSwweDZhKTsKKwkmTEwoMHhiYSwweGJhLDB4ZDIsMHhiYSwweGI5LDB4NjgsMHg2OSwweDAzKTsKKwkmTEwoMHgyZiwweDJmLDB4YmMsMHgyZiwweDY1LDB4OTMsMHg1ZSwweDRhKTsKKwkmTEwoMHhjMCwweGMwLDB4MjcsMHhjMCwweDRlLDB4ZTcsMHg5ZCwweDhlKTsKKwkmTEwoMHhkZSwweGRlLDB4NWYsMHhkZSwweGJlLDB4ODEsMHhhMSwweDYwKTsKKwkmTEwoMHgxYywweDFjLDB4NzAsMHgxYywweGUwLDB4NmMsMHgzOCwweGZjKTsKKwkmTEwoMHhmZCwweGZkLDB4ZDMsMHhmZCwweGJiLDB4MmUsMHhlNywweDQ2KTsKKwkmTEwoMHg0ZCwweDRkLDB4MjksMHg0ZCwweDUyLDB4NjQsMHg5YSwweDFmKTsKKwkmTEwoMHg5MiwweDkyLDB4NzIsMHg5MiwweGU0LDB4ZTAsMHgzOSwweDc2KTsKKwkmTEwoMHg3NSwweDc1LDB4YzksMHg3NSwweDhmLDB4YmMsMHhlYSwweGZhKTsKKwkmTEwoMHgwNiwweDA2LDB4MTgsMHgwNiwweDMwLDB4MWUsMHgwYywweDM2KTsKKwkmTEwoMHg4YSwweDhhLDB4MTIsMHg4YSwweDI0LDB4OTgsMHgwOSwweGFlKTsKKwkmTEwoMHhiMiwweGIyLDB4ZjIsMHhiMiwweGY5LDB4NDAsMHg3OSwweDRiKTsKKwkmTEwoMHhlNiwweGU2LDB4YmYsMHhlNiwweDYzLDB4NTksMHhkMSwweDg1KTsKKwkmTEwoMHgwZSwweDBlLDB4MzgsMHgwZSwweDcwLDB4MzYsMHgxYywweDdlKTsKKwkmTEwoMHgxZiwweDFmLDB4N2MsMHgxZiwweGY4LDB4NjMsMHgzZSwweGU3KTsKKwkmTEwoMHg2MiwweDYyLDB4OTUsMHg2MiwweDM3LDB4ZjcsMHhjNCwweDU1KTsKKwkmTEwoMHhkNCwweGQ0LDB4NzcsMHhkNCwweGVlLDB4YTMsMHhiNSwweDNhKTsKKwkmTEwoMHhhOCwweGE4LDB4OWEsMHhhOCwweDI5LDB4MzIsMHg0ZCwweDgxKTsKKwkmTEwoMHg5NiwweDk2LDB4NjIsMHg5NiwweGM0LDB4ZjQsMHgzMSwweDUyKTsKKwkmTEwoMHhmOSwweGY5LDB4YzMsMHhmOSwweDliLDB4M2EsMHhlZiwweDYyKTsKKwkmTEwoMHhjNSwweGM1LDB4MzMsMHhjNSwweDY2LDB4ZjYsMHg5NywweGEzKTsKKwkmTEwoMHgyNSwweDI1LDB4OTQsMHgyNSwweDM1LDB4YjEsMHg0YSwweDEwKTsKKwkmTEwoMHg1OSwweDU5LDB4NzksMHg1OSwweGYyLDB4MjAsMHhiMiwweGFiKTsKKwkmTEwoMHg4NCwweDg0LDB4MmEsMHg4NCwweDU0LDB4YWUsMHgxNSwweGQwKTsKKwkmTEwoMHg3MiwweDcyLDB4ZDUsMHg3MiwweGI3LDB4YTcsMHhlNCwweGM1KTsKKwkmTEwoMHgzOSwweDM5LDB4ZTQsMHgzOSwweGQ1LDB4ZGQsMHg3MiwweGVjKTsKKwkmTEwoMHg0YywweDRjLDB4MmQsMHg0YywweDVhLDB4NjEsMHg5OCwweDE2KTsKKwkmTEwoMHg1ZSwweDVlLDB4NjUsMHg1ZSwweGNhLDB4M2IsMHhiYywweDk0KTsKKwkmTEwoMHg3OCwweDc4LDB4ZmQsMHg3OCwweGU3LDB4ODUsMHhmMCwweDlmKTsKKwkmTEwoMHgzOCwweDM4LDB4ZTAsMHgzOCwweGRkLDB4ZDgsMHg3MCwweGU1KTsKKwkmTEwoMHg4YywweDhjLDB4MGEsMHg4YywweDE0LDB4ODYsMHgwNSwweDk4KTsKKwkmTEwoMHhkMSwweGQxLDB4NjMsMHhkMSwweGM2LDB4YjIsMHhiZiwweDE3KTsKKwkmTEwoMHhhNSwweGE1LDB4YWUsMHhhNSwweDQxLDB4MGIsMHg1NywweGU0KTsKKwkmTEwoMHhlMiwweGUyLDB4YWYsMHhlMiwweDQzLDB4NGQsMHhkOSwweGExKTsKKwkmTEwoMHg2MSwweDYxLDB4OTksMHg2MSwweDJmLDB4ZjgsMHhjMiwweDRlKTsKKwkmTEwoMHhiMywweGIzLDB4ZjYsMHhiMywweGYxLDB4NDUsMHg3YiwweDQyKTsKKwkmTEwoMHgyMSwweDIxLDB4ODQsMHgyMSwweDE1LDB4YTUsMHg0MiwweDM0KTsKKwkmTEwoMHg5YywweDljLDB4NGEsMHg5YywweDk0LDB4ZDYsMHgyNSwweDA4KTsKKwkmTEwoMHgxZSwweDFlLDB4NzgsMHgxZSwweGYwLDB4NjYsMHgzYywweGVlKTsKKwkmTEwoMHg0MywweDQzLDB4MTEsMHg0MywweDIyLDB4NTIsMHg4NiwweDYxKTsKKwkmTEwoMHhjNywweGM3LDB4M2IsMHhjNywweDc2LDB4ZmMsMHg5MywweGIxKTsKKwkmTEwoMHhmYywweGZjLDB4ZDcsMHhmYywweGIzLDB4MmIsMHhlNSwweDRmKTsKKwkmTEwoMHgwNCwweDA0LDB4MTAsMHgwNCwweDIwLDB4MTQsMHgwOCwweDI0KTsKKwkmTEwoMHg1MSwweDUxLDB4NTksMHg1MSwweGIyLDB4MDgsMHhhMiwweGUzKTsKKwkmTEwoMHg5OSwweDk5LDB4NWUsMHg5OSwweGJjLDB4YzcsMHgyZiwweDI1KTsKKwkmTEwoMHg2ZCwweDZkLDB4YTksMHg2ZCwweDRmLDB4YzQsMHhkYSwweDIyKTsKKwkmTEwoMHgwZCwweDBkLDB4MzQsMHgwZCwweDY4LDB4MzksMHgxYSwweDY1KTsKKwkmTEwoMHhmYSwweGZhLDB4Y2YsMHhmYSwweDgzLDB4MzUsMHhlOSwweDc5KTsKKwkmTEwoMHhkZiwweGRmLDB4NWIsMHhkZiwweGI2LDB4ODQsMHhhMywweDY5KTsKKwkmTEwoMHg3ZSwweDdlLDB4ZTUsMHg3ZSwweGQ3LDB4OWIsMHhmYywweGE5KTsKKwkmTEwoMHgyNCwweDI0LDB4OTAsMHgyNCwweDNkLDB4YjQsMHg0OCwweDE5KTsKKwkmTEwoMHgzYiwweDNiLDB4ZWMsMHgzYiwweGM1LDB4ZDcsMHg3NiwweGZlKTsKKwkmTEwoMHhhYiwweGFiLDB4OTYsMHhhYiwweDMxLDB4M2QsMHg0YiwweDlhKTsKKwkmTEwoMHhjZSwweGNlLDB4MWYsMHhjZSwweDNlLDB4ZDEsMHg4MSwweGYwKTsKKwkmTEwoMHgxMSwweDExLDB4NDQsMHgxMSwweDg4LDB4NTUsMHgyMiwweDk5KTsKKwkmTEwoMHg4ZiwweDhmLDB4MDYsMHg4ZiwweDBjLDB4ODksMHgwMywweDgzKTsKKwkmTEwoMHg0ZSwweDRlLDB4MjUsMHg0ZSwweDRhLDB4NmIsMHg5YywweDA0KTsKKwkmTEwoMHhiNywweGI3LDB4ZTYsMHhiNywweGQxLDB4NTEsMHg3MywweDY2KTsKKwkmTEwoMHhlYiwweGViLDB4OGIsMHhlYiwweDBiLDB4NjAsMHhjYiwweGUwKTsKKwkmTEwoMHgzYywweDNjLDB4ZjAsMHgzYywweGZkLDB4Y2MsMHg3OCwweGMxKTsKKwkmTEwoMHg4MSwweDgxLDB4M2UsMHg4MSwweDdjLDB4YmYsMHgxZiwweGZkKTsKKwkmTEwoMHg5NCwweDk0LDB4NmEsMHg5NCwweGQ0LDB4ZmUsMHgzNSwweDQwKTsKKwkmTEwoMHhmNywweGY3LDB4ZmIsMHhmNywweGViLDB4MGMsMHhmMywweDFjKTsKKwkmTEwoMHhiOSwweGI5LDB4ZGUsMHhiOSwweGExLDB4NjcsMHg2ZiwweDE4KTsKKwkmTEwoMHgxMywweDEzLDB4NGMsMHgxMywweDk4LDB4NWYsMHgyNiwweDhiKTsKKwkmTEwoMHgyYywweDJjLDB4YjAsMHgyYywweDdkLDB4OWMsMHg1OCwweDUxKTsKKwkmTEwoMHhkMywweGQzLDB4NmIsMHhkMywweGQ2LDB4YjgsMHhiYiwweDA1KTsKKwkmTEwoMHhlNywweGU3LDB4YmIsMHhlNywweDZiLDB4NWMsMHhkMywweDhjKTsKKwkmTEwoMHg2ZSwweDZlLDB4YTUsMHg2ZSwweDU3LDB4Y2IsMHhkYywweDM5KTsKKwkmTEwoMHhjNCwweGM0LDB4MzcsMHhjNCwweDZlLDB4ZjMsMHg5NSwweGFhKTsKKwkmTEwoMHgwMywweDAzLDB4MGMsMHgwMywweDE4LDB4MGYsMHgwNiwweDFiKTsKKwkmTEwoMHg1NiwweDU2LDB4NDUsMHg1NiwweDhhLDB4MTMsMHhhYywweGRjKTsKKwkmTEwoMHg0NCwweDQ0LDB4MGQsMHg0NCwweDFhLDB4NDksMHg4OCwweDVlKTsKKwkmTEwoMHg3ZiwweDdmLDB4ZTEsMHg3ZiwweGRmLDB4OWUsMHhmZSwweGEwKTsKKwkmTEwoMHhhOSwweGE5LDB4OWUsMHhhOSwweDIxLDB4MzcsMHg0ZiwweDg4KTsKKwkmTEwoMHgyYSwweDJhLDB4YTgsMHgyYSwweDRkLDB4ODIsMHg1NCwweDY3KTsKKwkmTEwoMHhiYiwweGJiLDB4ZDYsMHhiYiwweGIxLDB4NmQsMHg2YiwweDBhKTsKKwkmTEwoMHhjMSwweGMxLDB4MjMsMHhjMSwweDQ2LDB4ZTIsMHg5ZiwweDg3KTsKKwkmTEwoMHg1MywweDUzLDB4NTEsMHg1MywweGEyLDB4MDIsMHhhNiwweGYxKTsKKwkmTEwoMHhkYywweGRjLDB4NTcsMHhkYywweGFlLDB4OGIsMHhhNSwweDcyKTsKKwkmTEwoMHgwYiwweDBiLDB4MmMsMHgwYiwweDU4LDB4MjcsMHgxNiwweDUzKTsKKwkmTEwoMHg5ZCwweDlkLDB4NGUsMHg5ZCwweDljLDB4ZDMsMHgyNywweDAxKTsKKwkmTEwoMHg2YywweDZjLDB4YWQsMHg2YywweDQ3LDB4YzEsMHhkOCwweDJiKTsKKwkmTEwoMHgzMSwweDMxLDB4YzQsMHgzMSwweDk1LDB4ZjUsMHg2MiwweGE0KTsKKwkmTEwoMHg3NCwweDc0LDB4Y2QsMHg3NCwweDg3LDB4YjksMHhlOCwweGYzKTsKKwkmTEwoMHhmNiwweGY2LDB4ZmYsMHhmNiwweGUzLDB4MDksMHhmMSwweDE1KTsKKwkmTEwoMHg0NiwweDQ2LDB4MDUsMHg0NiwweDBhLDB4NDMsMHg4YywweDRjKTsKKwkmTEwoMHhhYywweGFjLDB4OGEsMHhhYywweDA5LDB4MjYsMHg0NSwweGE1KTsKKwkmTEwoMHg4OSwweDg5LDB4MWUsMHg4OSwweDNjLDB4OTcsMHgwZiwweGI1KTsKKwkmTEwoMHgxNCwweDE0LDB4NTAsMHgxNCwweGEwLDB4NDQsMHgyOCwweGI0KTsKKwkmTEwoMHhlMSwweGUxLDB4YTMsMHhlMSwweDViLDB4NDIsMHhkZiwweGJhKTsKKwkmTEwoMHgxNiwweDE2LDB4NTgsMHgxNiwweGIwLDB4NGUsMHgyYywweGE2KTsKKwkmTEwoMHgzYSwweDNhLDB4ZTgsMHgzYSwweGNkLDB4ZDIsMHg3NCwweGY3KTsKKwkmTEwoMHg2OSwweDY5LDB4YjksMHg2OSwweDZmLDB4ZDAsMHhkMiwweDA2KTsKKwkmTEwoMHgwOSwweDA5LDB4MjQsMHgwOSwweDQ4LDB4MmQsMHgxMiwweDQxKTsKKwkmTEwoMHg3MCwweDcwLDB4ZGQsMHg3MCwweGE3LDB4YWQsMHhlMCwweGQ3KTsKKwkmTEwoMHhiNiwweGI2LDB4ZTIsMHhiNiwweGQ5LDB4NTQsMHg3MSwweDZmKTsKKwkmTEwoMHhkMCwweGQwLDB4NjcsMHhkMCwweGNlLDB4YjcsMHhiZCwweDFlKTsKKwkmTEwoMHhlZCwweGVkLDB4OTMsMHhlZCwweDNiLDB4N2UsMHhjNywweGQ2KTsKKwkmTEwoMHhjYywweGNjLDB4MTcsMHhjYywweDJlLDB4ZGIsMHg4NSwweGUyKTsKKwkmTEwoMHg0MiwweDQyLDB4MTUsMHg0MiwweDJhLDB4NTcsMHg4NCwweDY4KTsKKwkmTEwoMHg5OCwweDk4LDB4NWEsMHg5OCwweGI0LDB4YzIsMHgyZCwweDJjKTsKKwkmTEwoMHhhNCwweGE0LDB4YWEsMHhhNCwweDQ5LDB4MGUsMHg1NSwweGVkKTsKKwkmTEwoMHgyOCwweDI4LDB4YTAsMHgyOCwweDVkLDB4ODgsMHg1MCwweDc1KTsKKwkmTEwoMHg1YywweDVjLDB4NmQsMHg1YywweGRhLDB4MzEsMHhiOCwweDg2KTsKKwkmTEwoMHhmOCwweGY4LDB4YzcsMHhmOCwweDkzLDB4M2YsMHhlZCwweDZiKTsKKwkmTEwoMHg4NiwweDg2LDB4MjIsMHg4NiwweDQ0LDB4YTQsMHgxMSwweGMyKTsKKworCSZMKDB4MTgsMHgyMywweGM2LDB4ZTgsMHg4NywweGI4LDB4MDEsMHg0Zik7CSMgcmNbUk9VTkRTXQorCSZMKDB4MzYsMHhhNiwweGQyLDB4ZjUsMHg3OSwweDZmLDB4OTEsMHg1Mik7CisJJkwoMHg2MCwweGJjLDB4OWIsMHg4ZSwweGEzLDB4MGMsMHg3YiwweDM1KTsKKwkmTCgweDFkLDB4ZTAsMHhkNywweGMyLDB4MmUsMHg0YiwweGZlLDB4NTcpOworCSZMKDB4MTUsMHg3NywweDM3LDB4ZTUsMHg5ZiwweGYwLDB4NGEsMHhkYSk7CisJJkwoMHg1OCwweGM5LDB4MjksMHgwYSwweGIxLDB4YTAsMHg2YiwweDg1KTsKKwkmTCgweGJkLDB4NWQsMHgxMCwweGY0LDB4Y2IsMHgzZSwweDA1LDB4NjcpOworCSZMKDB4ZTQsMHgyNywweDQxLDB4OGIsMHhhNywweDdkLDB4OTUsMHhkOCk7CisJJkwoMHhmYiwweGVlLDB4N2MsMHg2NiwweGRkLDB4MTcsMHg0NywweDllKTsKKwkmTCgweGNhLDB4MmQsMHhiZiwweDA3LDB4YWQsMHg1YSwweDgzLDB4MzMpOworCismZnVuY3Rpb25fZW5kX0IoIndocmlscG9vbF9ibG9ja19tbXgiKTsKKyZhc21fZmluaXNoKCk7IApkaWZmIC0tZ2l0IGEvY3J5cHRvL3docmxwb29sL3docmxwb29sLmggYi9jcnlwdG8vd2hybHBvb2wvd2hybHBvb2wuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NGZkZThhCi0tLSAvZGV2L251bGwKKysrIGIvY3J5cHRvL3docmxwb29sL3docmxwb29sLmgKQEAgLTAsMCArMSwzOCBAQAorI2lmbmRlZiBIRUFERVJfV0hSTFBPT0xfSAorI2RlZmluZSBIRUFERVJfV0hSTFBPT0xfSAorCisjaW5jbHVkZSA8b3BlbnNzbC9lX29zMi5oPgorI2luY2x1ZGUgPHN0ZGRlZi5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKyNkZWZpbmUgV0hJUkxQT09MX0RJR0VTVF9MRU5HVEgJKDUxMi84KQorI2RlZmluZSBXSElSTFBPT0xfQkJMT0NLCTUxMgorI2RlZmluZSBXSElSTFBPT0xfQ09VTlRFUgkoMjU2LzgpCisKK3R5cGVkZWYgc3RydWN0CXsKKwl1bmlvbgl7CisJCXVuc2lnbmVkIGNoYXIJY1tXSElSTFBPT0xfRElHRVNUX0xFTkdUSF07CisJCS8qIGRvdWJsZSBxIGlzIGhlcmUgdG8gZW5zdXJlcyA2NC1iaXQgYWxpZ25tZW50ICovCisJCWRvdWJsZQkJcVtXSElSTFBPT0xfRElHRVNUX0xFTkdUSC9zaXplb2YoZG91YmxlKV07CisJCX0JSDsKKwl1bnNpZ25lZCBjaGFyCWRhdGFbV0hJUkxQT09MX0JCTE9DSy84XTsKKwl1bnNpZ25lZCBpbnQJYml0b2ZmOworCXNpemVfdAkJYml0bGVuW1dISVJMUE9PTF9DT1VOVEVSL3NpemVvZihzaXplX3QpXTsKKwl9IFdISVJMUE9PTF9DVFg7CisKKyNpZm5kZWYgT1BFTlNTTF9OT19XSElSTFBPT0wKK3ZvaWQgV0hJUkxQT09MX0luaXQJKFdISVJMUE9PTF9DVFggKmMpOwordm9pZCBXSElSTFBPT0xfVXBkYXRlCShXSElSTFBPT0xfQ1RYICpjLGNvbnN0IHZvaWQgKmlucCxzaXplX3QgYnl0ZXMpOwordm9pZCBXSElSTFBPT0xfQml0VXBkYXRlKFdISVJMUE9PTF9DVFggKmMsY29uc3Qgdm9pZCAqaW5wLHNpemVfdCBiaXRzKTsKK3ZvaWQgV0hJUkxQT09MX0ZpbmFsCSh1bnNpZ25lZCBjaGFyICptZCxXSElSTFBPT0xfQ1RYICpjKTsKK3Vuc2lnbmVkIGNoYXIgKldISVJMUE9PTChjb25zdCB2b2lkICppbnAsc2l6ZV90IGJ5dGVzLHVuc2lnbmVkIGNoYXIgKm1kKTsKKyNlbmRpZgorCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYKZGlmZiAtLWdpdCBhL2NyeXB0by93aHJscG9vbC93cF9ibG9jay5jIGIvY3J5cHRvL3docmxwb29sL3dwX2Jsb2NrLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQ3OGUxMQotLS0gL2Rldi9udWxsCisrKyBiL2NyeXB0by93aHJscG9vbC93cF9ibG9jay5jCkBAIC0wLDAgKzEsNjU1IEBACisvKioKKyAqIFRoZSBXaGlybHBvb2wgaGFzaGluZyBmdW5jdGlvbi4KKyAqCisgKiA8UD4KKyAqIDxiPlJlZmVyZW5jZXM8L2I+CisgKgorICogPFA+CisgKiBUaGUgV2hpcmxwb29sIGFsZ29yaXRobSB3YXMgZGV2ZWxvcGVkIGJ5CisgKiA8YSBocmVmPSJtYWlsdG86cGJhcnJldG9Ac2NvcHVzLmNvbS5iciI+UGF1bG8gUy4gTC4gTS4gQmFycmV0bzwvYT4gYW5kCisgKiA8YSBocmVmPSJtYWlsdG86dmluY2VudC5yaWptZW5AY3J5cHRvbWF0aGljLmNvbSI+VmluY2VudCBSaWptZW48L2E+LgorICoKKyAqIFNlZQorICogICAgICBQLlMuTC5NLiBCYXJyZXRvLCBWLiBSaWptZW4sCisgKiAgICAgIGBgVGhlIFdoaXJscG9vbCBoYXNoaW5nIGZ1bmN0aW9uLCcnCisgKiAgICAgIE5FU1NJRSBzdWJtaXNzaW9uLCAyMDAwICh0d2Vha2VkIHZlcnNpb24sIDIwMDEpLAorICogICAgICA8aHR0cHM6Ly93d3cuY29zaWMuZXNhdC5rdWxldXZlbi5hYy5iZS9uZXNzaWUvd29ya3Nob3Avc3VibWlzc2lvbnMvd2hpcmxwb29sLnppcD4KKyAqCisgKiBCYXNlZCBvbiAiQHZlcnNpb24gMy4wICgyMDAzLjAzLjEyKSIgYnkgUGF1bG8gUy5MLk0uIEJhcnJldG8gYW5kCisgKiBWaW5jZW50IFJpam1lbi4gTG9va3VwICJyZWZlcmVuY2UgaW1wbGVtZW50YXRpb25zIiBvbgorICogPGh0dHA6Ly9wbGFuZXRhLnRlcnJhLmNvbS5ici9pbmZvcm1hdGljYS9wYXVsb2JhcnJldG8vPgorICoKKyAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SUyAnJ0FTIElTJycgQU5EIEFOWSBFWFBSRVNTCisgKiBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPTlRSSUJVVE9SUyBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUgorICogQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCisgKiBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRQorICogT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwKKyAqIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisKKyNpbmNsdWRlICJ3cF9sb2NsLmgiCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKK3R5cGVkZWYgdW5zaWduZWQgY2hhcgkJdTg7CisjaWYgKGRlZmluZWQoX1dJTjMyKSB8fCBkZWZpbmVkKF9XSU42NCkpICYmICFkZWZpbmVkKF9fTUlOR1czMikKK3R5cGVkZWYgdW5zaWduZWQgX19pbnQ2NAl1NjQ7CisjZWxpZiBkZWZpbmVkKF9fYXJjaDY0X18pCit0eXBlZGVmIHVuc2lnbmVkIGxvbmcJCXU2NDsKKyNlbHNlCit0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZwl1NjQ7CisjZW5kaWYKKworI2RlZmluZSBST1VORFMJMTAKKworI2RlZmluZSBTVFJJQ1RfQUxJR05NRU5UCisjaWYgZGVmaW5lZChfX2kzODYpIHx8IGRlZmluZWQoX19pMzg2X18pIHx8IFwKKyAgICBkZWZpbmVkKF9feDg2XzY0KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IFwKKyAgICBkZWZpbmVkKF9NX0lYODYpIHx8IGRlZmluZWQoX01fQU1ENjQpIHx8IGRlZmluZWQoX01fWDY0KQorLyogV2VsbCwgZm9ybWFsbHkgdGhlcmUncmUgY291cGxlIG9mIG90aGVyIGFyY2hpdGVjdHVyZXMsIHdoaWNoIHBlcm1pdAorICogdW5hbGlnbmVkIGxvYWRzLCBzcGVjaWZpY2FsbHkgdGhvc2Ugbm90IGNyb3NzaW5nIGNhY2hlIGxpbmVzLCBJQS02NAorICogYW5kIFBvd2VyUEMuLi4gKi8KKyMgIHVuZGVmIFNUUklDVF9BTElHTk1FTlQKKyNlbmRpZgorCisjdW5kZWYgU01BTExfUkVHSVNURVJfQkFOSworI2lmIGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9NX0lYODYpCisjICBkZWZpbmUgU01BTExfUkVHSVNURVJfQkFOSworIyAgaWYgZGVmaW5lZChXSElSTFBPT0xfQVNNKQorIyAgICBpZm5kZWYgT1BFTlNTTF9TTUFMTF9GT09UUFJJTlQKKyMgICAgICBkZWZpbmUgT1BFTlNTTF9TTUFMTF9GT09UUFJJTlQJLyogaXQgYXBwZWFycyB0aGF0IGZvciBlbGRlciBub24tTU1YCisJCQkJCSAgIENQVXMgdGhpcyBpcyBhY3R1YWxseSBmYXN0ZXIhICovCisjICAgIGVuZGlmCisjICAgIGRlZmluZSBHT19GT1JfTU1YKGN0eCxpbnAsbnVtKQlkbyB7CQkJXAorCWV4dGVybiB1bnNpZ25lZCBsb25nIE9QRU5TU0xfaWEzMmNhcF9QOwkJCVwKKwl2b2lkIHdoaXJscG9vbF9ibG9ja19tbXgodm9pZCAqLGNvbnN0IHZvaWQgKixzaXplX3QpOwlcCisJaWYgKCEoT1BFTlNTTF9pYTMyY2FwX1AgJiAoMTw8MjMpKSkJYnJlYWs7CQlcCisgICAgICAgIHdoaXJscG9vbF9ibG9ja19tbXgoY3R4LT5ILmMsaW5wLG51bSk7CXJldHVybjsJCVwKKwkJCQkJfSB3aGlsZSAoMCkKKyMgIGVuZGlmCisjZW5kaWYKKworI3VuZGVmIFJPVEFURQorI2lmIGRlZmluZWQoX01TQ19WRVIpCisjICBpZiBkZWZpbmVkKF9XSU42NCkJLyogYXBwbGllcyB0byBib3RoIElBLTY0IGFuZCBBTUQ2NCAqLworIyAgICBwcmFnbWEgaW50cmluc2ljKF9yb3RsNjQpCisjICAgIGRlZmluZSBST1RBVEUoYSxuKQlfcm90bDY0KChhKSxuKQorIyAgZW5kaWYKKyNlbGlmIGRlZmluZWQoX19HTlVDX18pICYmIF9fR05VQ19fPj0yCisjICBpZiBkZWZpbmVkKF9feDg2XzY0KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pCisjICAgIGlmIGRlZmluZWQoTF9FTkRJQU4pCisjICAgICAgZGVmaW5lIFJPVEFURShhLG4pCSh7IHU2NCByZXQ7IGFzbSAoInJvbHEgJTEsJTAiCVwKKwkJCQkgICA6ICI9ciIocmV0KSA6ICJKIihuKSwiMCIoYSkgOiAiY2MiKTsgcmV0OyB9KQorIyAgICBlbGlmIGRlZmluZWQoQl9FTkRJQU4pCisgICAgICAgLyogTW9zdCB3aWxsIGFyZ3VlIHRoYXQgeDg2XzY0IGlzIGFsd2F5cyBsaXR0bGUtZW5kaWFuLiBXZWxsLAorICAgICAgICAqIHllcywgYnV0IHRoZW4gd2UgaGF2ZSBzdHJhdHVzLmNvbSB3aG8gaGFzIG1vZGlmaWVkIGdjYyB0bworCSogImVtdWxhdGUiIGJpZy1lbmRpYW4gb24geDg2LiBJcyB0aGVyZSBldmlkZW5jZSB0aGF0IHRoZXkKKwkqIFtvciBzb21lYm9keSBlbHNlXSB3b24ndCBkbyBzYW1lIGZvciB4ODZfNjQ/IE5hdHVyYWxseSBuby4KKwkqIEFuZCB0aGlzIGxpbmUgaXMgd2FpdGluZyByZWFkeSBmb3IgdGhhdCBicmF2ZSBzb3VsOi0pICovCisjICAgICAgZGVmaW5lIFJPVEFURShhLG4pCSh7IHU2NCByZXQ7IGFzbSAoInJvcnEgJTEsJTAiCVwKKwkJCQkgICA6ICI9ciIocmV0KSA6ICJKIihuKSwiMCIoYSkgOiAiY2MiKTsgcmV0OyB9KQorIyAgICBlbmRpZgorIyAgZWxpZiBkZWZpbmVkKF9faWE2NCkgfHwgZGVmaW5lZChfX2lhNjRfXykKKyMgICAgaWYgZGVmaW5lZChMX0VORElBTikKKyMgICAgICBkZWZpbmUgUk9UQVRFKGEsbikJKHsgdTY0IHJldDsgYXNtICgic2hycCAlMD0lMSwlMSwlMiIJXAorCQkJCSAgIDogIj1yIihyZXQpIDogInIiKGEpLCJNIig2NC0obikpKTsgcmV0OyB9KQorIyAgICBlbGlmIGRlZmluZWQoQl9FTkRJQU4pCisjICAgICAgZGVmaW5lIFJPVEFURShhLG4pCSh7IHU2NCByZXQ7IGFzbSAoInNocnAgJTA9JTEsJTEsJTIiCVwKKwkJCQkgICA6ICI9ciIocmV0KSA6ICJyIihhKSwiTSIobikpOyByZXQ7IH0pCisjICAgIGVuZGlmCisjICBlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkKE9QRU5TU0xfU01BTExfRk9PVFBSSU5UKQorIyAgaWYgIWRlZmluZWQoUk9UQVRFKQorIyAgICBpZiBkZWZpbmVkKExfRU5ESUFOKQkvKiBsaXR0bGUtZW5kaWFucyBoYXZlIHRvIHJvdGF0ZSBsZWZ0ICovCisjICAgICAgZGVmaW5lIFJPVEFURShpLG4pCSgoaSk8PChuKSBeIChpKT4+KDY0LW4pKQorIyAgICBlbGlmIGRlZmluZWQoQl9FTkRJQU4pCS8qIGJpZy1lbmRpYW5zIGhhdmUgdG8gcm90YXRlIHJpZ2h0ICovCisjICAgICAgZGVmaW5lIFJPVEFURShpLG4pCSgoaSk+PihuKSBeIChpKTw8KDY0LW4pKQorIyAgICBlbmRpZgorIyAgZW5kaWYKKyMgIGlmIGRlZmluZWQoUk9UQVRFKSAmJiAhZGVmaW5lZChTVFJJQ1RfQUxJR05NRU5UKQorIyAgICBkZWZpbmUgU1RSSUNUX0FMSUdOTUVOVAkvKiBlbnN1cmUgc21hbGxlc3QgdGFibGUgc2l6ZSAqLworIyAgZW5kaWYKKyNlbmRpZgorCisvKgorICogVGFibGUgc2l6ZSBkZXBlbmRzIG9uIFNUUklDVF9BTElHTk1FTlQgYW5kIHdoZXRoZXIgb3Igbm90IGVuZGlhbi0KKyAqIHNwZWNpZmljIFJPVEFURSBtYWNybyBpcyBkZWZpbmVkLiBJZiBTVFJJQ1RfQUxJR05NRU5UIGlzIG5vdAorICogZGVmaW5lZCwgd2hpY2ggaXMgbm9ybWFsbHkgdGhlIGNhc2Ugb24geDg2W182NF0gQ1BVcywgdGhlIHRhYmxlIGlzCisgKiA0S0IgbGFyZ2UgdW5jb25kaXRpb25hbGx5LiBPdGhlcndpc2UgaWYgUk9UQVRFIGlzIGRlZmluZWQsIHRoZQorICogdGFibGUgaXMgMktCIGxhcmdlLCBhbmQgb3RoZXJ3aXNlIC0gMTZLQi4gMktCIHRhYmxlIHJlcXVpcmVzIGEKKyAqIHdob2xlIGJ1bmNoIG9mIGFkZGl0aW9uYWwgcm90YXRpb25zLCBidXQgSSdtIHdpbGxpbmcgdG8gInRyYWRlLCIKKyAqIGJlY2F1c2UgMTZLQiB0YWJsZSBjZXJ0YWlubHkgdHJhc2hlcyBMMSBjYWNoZS4gSSB3aXNoIGFsbCBDUFVzCisgKiBjb3VsZCBoYW5kbGUgdW5hbGlnbmVkIGxvYWQgYXMgNEtCIHRhYmxlIGRvZXNuJ3QgdHJhc2ggdGhlIGNhY2hlLAorICogbm9yIGRvZXMgaXQgcmVxdWlyZSBhZGRpdGlvbmFsIHJvdGF0aW9ucy4KKyAqLworLyoKKyAqIE5vdGUgdGhhdCBldmVyeSBDbiBtYWNybyBleHBhbmRzIGFzIHR3byBsb2Fkczogb25lIGJ5dGUgbG9hZCBhbmQKKyAqIG9uZSBxdWFkd29yZCBsb2FkLiBPbmUgY2FuIGFyZ3VlIHRoYXQgdGhhdCBtYW55IHNpbmdsZS1ieXRlIGxvYWRzCisgKiBpcyB0b28gZXhjZXNzaXZlLCBhcyBvbmUgY291bGQgbG9hZCBhIHF1YWR3b3JkIGFuZCAibWlsayIgaXQgZm9yCisgKiBlaWdodCA4LWJpdCB2YWx1ZXMgaW5zdGVhZC4gV2VsbCwgeWVzLCBidXQgaW4gb3JkZXIgdG8gZG8gc28gKmFuZCoKKyAqIGF2b2lkIGV4Y2Vzc2l2ZSBsb2FkcyB5b3UgaGF2ZSB0byBhY2NvbW9kYXRlIGEgaGFuZGZ1bCBvZiA2NC1iaXQKKyAqIHZhbHVlcyBpbiB0aGUgcmVnaXN0ZXIgYmFuayBhbmQgaXNzdWUgYSBidW5jaCBvZiBzaGlmdHMgYW5kIG1hc2suCisgKiBJdCdzIGEgdHJhZGVvZmY6IGxvYWRzIHZzLiBzaGlmdCBhbmQgbWFzayBpbiBiaWcgcmVnaXN0ZXIgYmFua1shXS4KKyAqIE9uIG1vc3QgQ1BVcyBlaWdodCBzaW5nbGUtYnl0ZSBsb2FkcyBhcmUgZmFzdGVyIGFuZCBJIGxldCBvdGhlcgorICogb25lcyB0byBkZXBlbmQgb24gc21hcnQgY29tcGlsZXIgdG8gZm9sZCBieXRlIGxvYWRzIGlmIGJlbmVmaWNpYWwuCisgKiBIYW5kLWNvZGVkIGFzc2VtYmxlciB3b3VsZCBiZSBhbm90aGVyIGFsdGVybmF0aXZlOi0pCisgKi8KKyNpZmRlZiBTVFJJQ1RfQUxJR05NRU5UCisjICBpZiBkZWZpbmVkKFJPVEFURSkKKyMgICAgZGVmaW5lIE4JMQorIyAgICBkZWZpbmUgTEwoYzAsYzEsYzIsYzMsYzQsYzUsYzYsYzcpCWMwLGMxLGMyLGMzLGM0LGM1LGM2LGM3CisjICAgIGRlZmluZSBDMChLLGkpCShDeC5xW0suY1soaSkqOCswXV0pCisjICAgIGRlZmluZSBDMShLLGkpCVJPVEFURShDeC5xW0suY1soaSkqOCsxXV0sOCkKKyMgICAgZGVmaW5lIEMyKEssaSkJUk9UQVRFKEN4LnFbSy5jWyhpKSo4KzJdXSwxNikKKyMgICAgZGVmaW5lIEMzKEssaSkJUk9UQVRFKEN4LnFbSy5jWyhpKSo4KzNdXSwyNCkKKyMgICAgZGVmaW5lIEM0KEssaSkJUk9UQVRFKEN4LnFbSy5jWyhpKSo4KzRdXSwzMikKKyMgICAgZGVmaW5lIEM1KEssaSkJUk9UQVRFKEN4LnFbSy5jWyhpKSo4KzVdXSw0MCkKKyMgICAgZGVmaW5lIEM2KEssaSkJUk9UQVRFKEN4LnFbSy5jWyhpKSo4KzZdXSw0OCkKKyMgICAgZGVmaW5lIEM3KEssaSkJUk9UQVRFKEN4LnFbSy5jWyhpKSo4KzddXSw1NikKKyMgIGVsc2UKKyMgICAgZGVmaW5lIE4JOAorIyAgICBkZWZpbmUgTEwoYzAsYzEsYzIsYzMsYzQsYzUsYzYsYzcpCWMwLGMxLGMyLGMzLGM0LGM1LGM2LGM3LCBcCisJCQkJCWM3LGMwLGMxLGMyLGMzLGM0LGM1LGM2LCBcCisJCQkJCWM2LGM3LGMwLGMxLGMyLGMzLGM0LGM1LCBcCisJCQkJCWM1LGM2LGM3LGMwLGMxLGMyLGMzLGM0LCBcCisJCQkJCWM0LGM1LGM2LGM3LGMwLGMxLGMyLGMzLCBcCisJCQkJCWMzLGM0LGM1LGM2LGM3LGMwLGMxLGMyLCBcCisJCQkJCWMyLGMzLGM0LGM1LGM2LGM3LGMwLGMxLCBcCisJCQkJCWMxLGMyLGMzLGM0LGM1LGM2LGM3LGMwCisjICAgIGRlZmluZSBDMChLLGkpCShDeC5xWzArOCpLLmNbKGkpKjgrMF1dKQorIyAgICBkZWZpbmUgQzEoSyxpKQkoQ3gucVsxKzgqSy5jWyhpKSo4KzFdXSkKKyMgICAgZGVmaW5lIEMyKEssaSkJKEN4LnFbMis4KksuY1soaSkqOCsyXV0pCisjICAgIGRlZmluZSBDMyhLLGkpCShDeC5xWzMrOCpLLmNbKGkpKjgrM11dKQorIyAgICBkZWZpbmUgQzQoSyxpKQkoQ3gucVs0KzgqSy5jWyhpKSo4KzRdXSkKKyMgICAgZGVmaW5lIEM1KEssaSkJKEN4LnFbNSs4KksuY1soaSkqOCs1XV0pCisjICAgIGRlZmluZSBDNihLLGkpCShDeC5xWzYrOCpLLmNbKGkpKjgrNl1dKQorIyAgICBkZWZpbmUgQzcoSyxpKQkoQ3gucVs3KzgqSy5jWyhpKSo4KzddXSkKKyMgIGVuZGlmCisjZWxzZQorIyAgZGVmaW5lIE4JMgorIyAgZGVmaW5lIExMKGMwLGMxLGMyLGMzLGM0LGM1LGM2LGM3KQljMCxjMSxjMixjMyxjNCxjNSxjNixjNywgXAorCQkJCQljMCxjMSxjMixjMyxjNCxjNSxjNixjNworIyAgZGVmaW5lIEMwKEssaSkJKCgodTY0KikoQ3guYyswKSlbMipLLmNbKGkpKjgrMF1dKQorIyAgZGVmaW5lIEMxKEssaSkJKCgodTY0KikoQ3guYys3KSlbMipLLmNbKGkpKjgrMV1dKQorIyAgZGVmaW5lIEMyKEssaSkJKCgodTY0KikoQ3guYys2KSlbMipLLmNbKGkpKjgrMl1dKQorIyAgZGVmaW5lIEMzKEssaSkJKCgodTY0KikoQ3guYys1KSlbMipLLmNbKGkpKjgrM11dKQorIyAgZGVmaW5lIEM0KEssaSkJKCgodTY0KikoQ3guYys0KSlbMipLLmNbKGkpKjgrNF1dKQorIyAgZGVmaW5lIEM1KEssaSkJKCgodTY0KikoQ3guYyszKSlbMipLLmNbKGkpKjgrNV1dKQorIyAgZGVmaW5lIEM2KEssaSkJKCgodTY0KikoQ3guYysyKSlbMipLLmNbKGkpKjgrNl1dKQorIyAgZGVmaW5lIEM3KEssaSkJKCgodTY0KikoQ3guYysxKSlbMipLLmNbKGkpKjgrN11dKQorI2VuZGlmCisKK3N0YXRpYyBjb25zdAordW5pb24JeworCXU4CWNbKDI1NipOK1JPVU5EUykqc2l6ZW9mKHU2NCldOworCXU2NAlxWygyNTYqTitST1VORFMpXTsKKwl9IEN4ID0geyB7CisJLyogTm90ZSBlZGlhbi1uZXV0cmFsIHJlcHJlc2VudGF0aW9uOi0pICovCisJTEwoMHgxOCwweDE4LDB4NjAsMHgxOCwweGMwLDB4NzgsMHgzMCwweGQ4KSwKKwlMTCgweDIzLDB4MjMsMHg4YywweDIzLDB4MDUsMHhhZiwweDQ2LDB4MjYpLAorCUxMKDB4YzYsMHhjNiwweDNmLDB4YzYsMHg3ZSwweGY5LDB4OTEsMHhiOCksCisJTEwoMHhlOCwweGU4LDB4ODcsMHhlOCwweDEzLDB4NmYsMHhjZCwweGZiKSwKKwlMTCgweDg3LDB4ODcsMHgyNiwweDg3LDB4NGMsMHhhMSwweDEzLDB4Y2IpLAorCUxMKDB4YjgsMHhiOCwweGRhLDB4YjgsMHhhOSwweDYyLDB4NmQsMHgxMSksCisJTEwoMHgwMSwweDAxLDB4MDQsMHgwMSwweDA4LDB4MDUsMHgwMiwweDA5KSwKKwlMTCgweDRmLDB4NGYsMHgyMSwweDRmLDB4NDIsMHg2ZSwweDllLDB4MGQpLAorCUxMKDB4MzYsMHgzNiwweGQ4LDB4MzYsMHhhZCwweGVlLDB4NmMsMHg5YiksCisJTEwoMHhhNiwweGE2LDB4YTIsMHhhNiwweDU5LDB4MDQsMHg1MSwweGZmKSwKKwlMTCgweGQyLDB4ZDIsMHg2ZiwweGQyLDB4ZGUsMHhiZCwweGI5LDB4MGMpLAorCUxMKDB4ZjUsMHhmNSwweGYzLDB4ZjUsMHhmYiwweDA2LDB4ZjcsMHgwZSksCisJTEwoMHg3OSwweDc5LDB4ZjksMHg3OSwweGVmLDB4ODAsMHhmMiwweDk2KSwKKwlMTCgweDZmLDB4NmYsMHhhMSwweDZmLDB4NWYsMHhjZSwweGRlLDB4MzApLAorCUxMKDB4OTEsMHg5MSwweDdlLDB4OTEsMHhmYywweGVmLDB4M2YsMHg2ZCksCisJTEwoMHg1MiwweDUyLDB4NTUsMHg1MiwweGFhLDB4MDcsMHhhNCwweGY4KSwKKwlMTCgweDYwLDB4NjAsMHg5ZCwweDYwLDB4MjcsMHhmZCwweGMwLDB4NDcpLAorCUxMKDB4YmMsMHhiYywweGNhLDB4YmMsMHg4OSwweDc2LDB4NjUsMHgzNSksCisJTEwoMHg5YiwweDliLDB4NTYsMHg5YiwweGFjLDB4Y2QsMHgyYiwweDM3KSwKKwlMTCgweDhlLDB4OGUsMHgwMiwweDhlLDB4MDQsMHg4YywweDAxLDB4OGEpLAorCUxMKDB4YTMsMHhhMywweGI2LDB4YTMsMHg3MSwweDE1LDB4NWIsMHhkMiksCisJTEwoMHgwYywweDBjLDB4MzAsMHgwYywweDYwLDB4M2MsMHgxOCwweDZjKSwKKwlMTCgweDdiLDB4N2IsMHhmMSwweDdiLDB4ZmYsMHg4YSwweGY2LDB4ODQpLAorCUxMKDB4MzUsMHgzNSwweGQ0LDB4MzUsMHhiNSwweGUxLDB4NmEsMHg4MCksCisJTEwoMHgxZCwweDFkLDB4NzQsMHgxZCwweGU4LDB4NjksMHgzYSwweGY1KSwKKwlMTCgweGUwLDB4ZTAsMHhhNywweGUwLDB4NTMsMHg0NywweGRkLDB4YjMpLAorCUxMKDB4ZDcsMHhkNywweDdiLDB4ZDcsMHhmNiwweGFjLDB4YjMsMHgyMSksCisJTEwoMHhjMiwweGMyLDB4MmYsMHhjMiwweDVlLDB4ZWQsMHg5OSwweDljKSwKKwlMTCgweDJlLDB4MmUsMHhiOCwweDJlLDB4NmQsMHg5NiwweDVjLDB4NDMpLAorCUxMKDB4NGIsMHg0YiwweDMxLDB4NGIsMHg2MiwweDdhLDB4OTYsMHgyOSksCisJTEwoMHhmZSwweGZlLDB4ZGYsMHhmZSwweGEzLDB4MjEsMHhlMSwweDVkKSwKKwlMTCgweDU3LDB4NTcsMHg0MSwweDU3LDB4ODIsMHgxNiwweGFlLDB4ZDUpLAorCUxMKDB4MTUsMHgxNSwweDU0LDB4MTUsMHhhOCwweDQxLDB4MmEsMHhiZCksCisJTEwoMHg3NywweDc3LDB4YzEsMHg3NywweDlmLDB4YjYsMHhlZSwweGU4KSwKKwlMTCgweDM3LDB4MzcsMHhkYywweDM3LDB4YTUsMHhlYiwweDZlLDB4OTIpLAorCUxMKDB4ZTUsMHhlNSwweGIzLDB4ZTUsMHg3YiwweDU2LDB4ZDcsMHg5ZSksCisJTEwoMHg5ZiwweDlmLDB4NDYsMHg5ZiwweDhjLDB4ZDksMHgyMywweDEzKSwKKwlMTCgweGYwLDB4ZjAsMHhlNywweGYwLDB4ZDMsMHgxNywweGZkLDB4MjMpLAorCUxMKDB4NGEsMHg0YSwweDM1LDB4NGEsMHg2YSwweDdmLDB4OTQsMHgyMCksCisJTEwoMHhkYSwweGRhLDB4NGYsMHhkYSwweDllLDB4OTUsMHhhOSwweDQ0KSwKKwlMTCgweDU4LDB4NTgsMHg3ZCwweDU4LDB4ZmEsMHgyNSwweGIwLDB4YTIpLAorCUxMKDB4YzksMHhjOSwweDAzLDB4YzksMHgwNiwweGNhLDB4OGYsMHhjZiksCisJTEwoMHgyOSwweDI5LDB4YTQsMHgyOSwweDU1LDB4OGQsMHg1MiwweDdjKSwKKwlMTCgweDBhLDB4MGEsMHgyOCwweDBhLDB4NTAsMHgyMiwweDE0LDB4NWEpLAorCUxMKDB4YjEsMHhiMSwweGZlLDB4YjEsMHhlMSwweDRmLDB4N2YsMHg1MCksCisJTEwoMHhhMCwweGEwLDB4YmEsMHhhMCwweDY5LDB4MWEsMHg1ZCwweGM5KSwKKwlMTCgweDZiLDB4NmIsMHhiMSwweDZiLDB4N2YsMHhkYSwweGQ2LDB4MTQpLAorCUxMKDB4ODUsMHg4NSwweDJlLDB4ODUsMHg1YywweGFiLDB4MTcsMHhkOSksCisJTEwoMHhiZCwweGJkLDB4Y2UsMHhiZCwweDgxLDB4NzMsMHg2NywweDNjKSwKKwlMTCgweDVkLDB4NWQsMHg2OSwweDVkLDB4ZDIsMHgzNCwweGJhLDB4OGYpLAorCUxMKDB4MTAsMHgxMCwweDQwLDB4MTAsMHg4MCwweDUwLDB4MjAsMHg5MCksCisJTEwoMHhmNCwweGY0LDB4ZjcsMHhmNCwweGYzLDB4MDMsMHhmNSwweDA3KSwKKwlMTCgweGNiLDB4Y2IsMHgwYiwweGNiLDB4MTYsMHhjMCwweDhiLDB4ZGQpLAorCUxMKDB4M2UsMHgzZSwweGY4LDB4M2UsMHhlZCwweGM2LDB4N2MsMHhkMyksCisJTEwoMHgwNSwweDA1LDB4MTQsMHgwNSwweDI4LDB4MTEsMHgwYSwweDJkKSwKKwlMTCgweDY3LDB4NjcsMHg4MSwweDY3LDB4MWYsMHhlNiwweGNlLDB4NzgpLAorCUxMKDB4ZTQsMHhlNCwweGI3LDB4ZTQsMHg3MywweDUzLDB4ZDUsMHg5NyksCisJTEwoMHgyNywweDI3LDB4OWMsMHgyNywweDI1LDB4YmIsMHg0ZSwweDAyKSwKKwlMTCgweDQxLDB4NDEsMHgxOSwweDQxLDB4MzIsMHg1OCwweDgyLDB4NzMpLAorCUxMKDB4OGIsMHg4YiwweDE2LDB4OGIsMHgyYywweDlkLDB4MGIsMHhhNyksCisJTEwoMHhhNywweGE3LDB4YTYsMHhhNywweDUxLDB4MDEsMHg1MywweGY2KSwKKwlMTCgweDdkLDB4N2QsMHhlOSwweDdkLDB4Y2YsMHg5NCwweGZhLDB4YjIpLAorCUxMKDB4OTUsMHg5NSwweDZlLDB4OTUsMHhkYywweGZiLDB4MzcsMHg0OSksCisJTEwoMHhkOCwweGQ4LDB4NDcsMHhkOCwweDhlLDB4OWYsMHhhZCwweDU2KSwKKwlMTCgweGZiLDB4ZmIsMHhjYiwweGZiLDB4OGIsMHgzMCwweGViLDB4NzApLAorCUxMKDB4ZWUsMHhlZSwweDlmLDB4ZWUsMHgyMywweDcxLDB4YzEsMHhjZCksCisJTEwoMHg3YywweDdjLDB4ZWQsMHg3YywweGM3LDB4OTEsMHhmOCwweGJiKSwKKwlMTCgweDY2LDB4NjYsMHg4NSwweDY2LDB4MTcsMHhlMywweGNjLDB4NzEpLAorCUxMKDB4ZGQsMHhkZCwweDUzLDB4ZGQsMHhhNiwweDhlLDB4YTcsMHg3YiksCisJTEwoMHgxNywweDE3LDB4NWMsMHgxNywweGI4LDB4NGIsMHgyZSwweGFmKSwKKwlMTCgweDQ3LDB4NDcsMHgwMSwweDQ3LDB4MDIsMHg0NiwweDhlLDB4NDUpLAorCUxMKDB4OWUsMHg5ZSwweDQyLDB4OWUsMHg4NCwweGRjLDB4MjEsMHgxYSksCisJTEwoMHhjYSwweGNhLDB4MGYsMHhjYSwweDFlLDB4YzUsMHg4OSwweGQ0KSwKKwlMTCgweDJkLDB4MmQsMHhiNCwweDJkLDB4NzUsMHg5OSwweDVhLDB4NTgpLAorCUxMKDB4YmYsMHhiZiwweGM2LDB4YmYsMHg5MSwweDc5LDB4NjMsMHgyZSksCisJTEwoMHgwNywweDA3LDB4MWMsMHgwNywweDM4LDB4MWIsMHgwZSwweDNmKSwKKwlMTCgweGFkLDB4YWQsMHg4ZSwweGFkLDB4MDEsMHgyMywweDQ3LDB4YWMpLAorCUxMKDB4NWEsMHg1YSwweDc1LDB4NWEsMHhlYSwweDJmLDB4YjQsMHhiMCksCisJTEwoMHg4MywweDgzLDB4MzYsMHg4MywweDZjLDB4YjUsMHgxYiwweGVmKSwKKwlMTCgweDMzLDB4MzMsMHhjYywweDMzLDB4ODUsMHhmZiwweDY2LDB4YjYpLAorCUxMKDB4NjMsMHg2MywweDkxLDB4NjMsMHgzZiwweGYyLDB4YzYsMHg1YyksCisJTEwoMHgwMiwweDAyLDB4MDgsMHgwMiwweDEwLDB4MGEsMHgwNCwweDEyKSwKKwlMTCgweGFhLDB4YWEsMHg5MiwweGFhLDB4MzksMHgzOCwweDQ5LDB4OTMpLAorCUxMKDB4NzEsMHg3MSwweGQ5LDB4NzEsMHhhZiwweGE4LDB4ZTIsMHhkZSksCisJTEwoMHhjOCwweGM4LDB4MDcsMHhjOCwweDBlLDB4Y2YsMHg4ZCwweGM2KSwKKwlMTCgweDE5LDB4MTksMHg2NCwweDE5LDB4YzgsMHg3ZCwweDMyLDB4ZDEpLAorCUxMKDB4NDksMHg0OSwweDM5LDB4NDksMHg3MiwweDcwLDB4OTIsMHgzYiksCisJTEwoMHhkOSwweGQ5LDB4NDMsMHhkOSwweDg2LDB4OWEsMHhhZiwweDVmKSwKKwlMTCgweGYyLDB4ZjIsMHhlZiwweGYyLDB4YzMsMHgxZCwweGY5LDB4MzEpLAorCUxMKDB4ZTMsMHhlMywweGFiLDB4ZTMsMHg0YiwweDQ4LDB4ZGIsMHhhOCksCisJTEwoMHg1YiwweDViLDB4NzEsMHg1YiwweGUyLDB4MmEsMHhiNiwweGI5KSwKKwlMTCgweDg4LDB4ODgsMHgxYSwweDg4LDB4MzQsMHg5MiwweDBkLDB4YmMpLAorCUxMKDB4OWEsMHg5YSwweDUyLDB4OWEsMHhhNCwweGM4LDB4MjksMHgzZSksCisJTEwoMHgyNiwweDI2LDB4OTgsMHgyNiwweDJkLDB4YmUsMHg0YywweDBiKSwKKwlMTCgweDMyLDB4MzIsMHhjOCwweDMyLDB4OGQsMHhmYSwweDY0LDB4YmYpLAorCUxMKDB4YjAsMHhiMCwweGZhLDB4YjAsMHhlOSwweDRhLDB4N2QsMHg1OSksCisJTEwoMHhlOSwweGU5LDB4ODMsMHhlOSwweDFiLDB4NmEsMHhjZiwweGYyKSwKKwlMTCgweDBmLDB4MGYsMHgzYywweDBmLDB4NzgsMHgzMywweDFlLDB4NzcpLAorCUxMKDB4ZDUsMHhkNSwweDczLDB4ZDUsMHhlNiwweGE2LDB4YjcsMHgzMyksCisJTEwoMHg4MCwweDgwLDB4M2EsMHg4MCwweDc0LDB4YmEsMHgxZCwweGY0KSwKKwlMTCgweGJlLDB4YmUsMHhjMiwweGJlLDB4OTksMHg3YywweDYxLDB4MjcpLAorCUxMKDB4Y2QsMHhjZCwweDEzLDB4Y2QsMHgyNiwweGRlLDB4ODcsMHhlYiksCisJTEwoMHgzNCwweDM0LDB4ZDAsMHgzNCwweGJkLDB4ZTQsMHg2OCwweDg5KSwKKwlMTCgweDQ4LDB4NDgsMHgzZCwweDQ4LDB4N2EsMHg3NSwweDkwLDB4MzIpLAorCUxMKDB4ZmYsMHhmZiwweGRiLDB4ZmYsMHhhYiwweDI0LDB4ZTMsMHg1NCksCisJTEwoMHg3YSwweDdhLDB4ZjUsMHg3YSwweGY3LDB4OGYsMHhmNCwweDhkKSwKKwlMTCgweDkwLDB4OTAsMHg3YSwweDkwLDB4ZjQsMHhlYSwweDNkLDB4NjQpLAorCUxMKDB4NWYsMHg1ZiwweDYxLDB4NWYsMHhjMiwweDNlLDB4YmUsMHg5ZCksCisJTEwoMHgyMCwweDIwLDB4ODAsMHgyMCwweDFkLDB4YTAsMHg0MCwweDNkKSwKKwlMTCgweDY4LDB4NjgsMHhiZCwweDY4LDB4NjcsMHhkNSwweGQwLDB4MGYpLAorCUxMKDB4MWEsMHgxYSwweDY4LDB4MWEsMHhkMCwweDcyLDB4MzQsMHhjYSksCisJTEwoMHhhZSwweGFlLDB4ODIsMHhhZSwweDE5LDB4MmMsMHg0MSwweGI3KSwKKwlMTCgweGI0LDB4YjQsMHhlYSwweGI0LDB4YzksMHg1ZSwweDc1LDB4N2QpLAorCUxMKDB4NTQsMHg1NCwweDRkLDB4NTQsMHg5YSwweDE5LDB4YTgsMHhjZSksCisJTEwoMHg5MywweDkzLDB4NzYsMHg5MywweGVjLDB4ZTUsMHgzYiwweDdmKSwKKwlMTCgweDIyLDB4MjIsMHg4OCwweDIyLDB4MGQsMHhhYSwweDQ0LDB4MmYpLAorCUxMKDB4NjQsMHg2NCwweDhkLDB4NjQsMHgwNywweGU5LDB4YzgsMHg2MyksCisJTEwoMHhmMSwweGYxLDB4ZTMsMHhmMSwweGRiLDB4MTIsMHhmZiwweDJhKSwKKwlMTCgweDczLDB4NzMsMHhkMSwweDczLDB4YmYsMHhhMiwweGU2LDB4Y2MpLAorCUxMKDB4MTIsMHgxMiwweDQ4LDB4MTIsMHg5MCwweDVhLDB4MjQsMHg4MiksCisJTEwoMHg0MCwweDQwLDB4MWQsMHg0MCwweDNhLDB4NWQsMHg4MCwweDdhKSwKKwlMTCgweDA4LDB4MDgsMHgyMCwweDA4LDB4NDAsMHgyOCwweDEwLDB4NDgpLAorCUxMKDB4YzMsMHhjMywweDJiLDB4YzMsMHg1NiwweGU4LDB4OWIsMHg5NSksCisJTEwoMHhlYywweGVjLDB4OTcsMHhlYywweDMzLDB4N2IsMHhjNSwweGRmKSwKKwlMTCgweGRiLDB4ZGIsMHg0YiwweGRiLDB4OTYsMHg5MCwweGFiLDB4NGQpLAorCUxMKDB4YTEsMHhhMSwweGJlLDB4YTEsMHg2MSwweDFmLDB4NWYsMHhjMCksCisJTEwoMHg4ZCwweDhkLDB4MGUsMHg4ZCwweDFjLDB4ODMsMHgwNywweDkxKSwKKwlMTCgweDNkLDB4M2QsMHhmNCwweDNkLDB4ZjUsMHhjOSwweDdhLDB4YzgpLAorCUxMKDB4OTcsMHg5NywweDY2LDB4OTcsMHhjYywweGYxLDB4MzMsMHg1YiksCisJTEwoMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwLDB4MDAsMHgwMCwweDAwKSwKKwlMTCgweGNmLDB4Y2YsMHgxYiwweGNmLDB4MzYsMHhkNCwweDgzLDB4ZjkpLAorCUxMKDB4MmIsMHgyYiwweGFjLDB4MmIsMHg0NSwweDg3LDB4NTYsMHg2ZSksCisJTEwoMHg3NiwweDc2LDB4YzUsMHg3NiwweDk3LDB4YjMsMHhlYywweGUxKSwKKwlMTCgweDgyLDB4ODIsMHgzMiwweDgyLDB4NjQsMHhiMCwweDE5LDB4ZTYpLAorCUxMKDB4ZDYsMHhkNiwweDdmLDB4ZDYsMHhmZSwweGE5LDB4YjEsMHgyOCksCisJTEwoMHgxYiwweDFiLDB4NmMsMHgxYiwweGQ4LDB4NzcsMHgzNiwweGMzKSwKKwlMTCgweGI1LDB4YjUsMHhlZSwweGI1LDB4YzEsMHg1YiwweDc3LDB4NzQpLAorCUxMKDB4YWYsMHhhZiwweDg2LDB4YWYsMHgxMSwweDI5LDB4NDMsMHhiZSksCisJTEwoMHg2YSwweDZhLDB4YjUsMHg2YSwweDc3LDB4ZGYsMHhkNCwweDFkKSwKKwlMTCgweDUwLDB4NTAsMHg1ZCwweDUwLDB4YmEsMHgwZCwweGEwLDB4ZWEpLAorCUxMKDB4NDUsMHg0NSwweDA5LDB4NDUsMHgxMiwweDRjLDB4OGEsMHg1NyksCisJTEwoMHhmMywweGYzLDB4ZWIsMHhmMywweGNiLDB4MTgsMHhmYiwweDM4KSwKKwlMTCgweDMwLDB4MzAsMHhjMCwweDMwLDB4OWQsMHhmMCwweDYwLDB4YWQpLAorCUxMKDB4ZWYsMHhlZiwweDliLDB4ZWYsMHgyYiwweDc0LDB4YzMsMHhjNCksCisJTEwoMHgzZiwweDNmLDB4ZmMsMHgzZiwweGU1LDB4YzMsMHg3ZSwweGRhKSwKKwlMTCgweDU1LDB4NTUsMHg0OSwweDU1LDB4OTIsMHgxYywweGFhLDB4YzcpLAorCUxMKDB4YTIsMHhhMiwweGIyLDB4YTIsMHg3OSwweDEwLDB4NTksMHhkYiksCisJTEwoMHhlYSwweGVhLDB4OGYsMHhlYSwweDAzLDB4NjUsMHhjOSwweGU5KSwKKwlMTCgweDY1LDB4NjUsMHg4OSwweDY1LDB4MGYsMHhlYywweGNhLDB4NmEpLAorCUxMKDB4YmEsMHhiYSwweGQyLDB4YmEsMHhiOSwweDY4LDB4NjksMHgwMyksCisJTEwoMHgyZiwweDJmLDB4YmMsMHgyZiwweDY1LDB4OTMsMHg1ZSwweDRhKSwKKwlMTCgweGMwLDB4YzAsMHgyNywweGMwLDB4NGUsMHhlNywweDlkLDB4OGUpLAorCUxMKDB4ZGUsMHhkZSwweDVmLDB4ZGUsMHhiZSwweDgxLDB4YTEsMHg2MCksCisJTEwoMHgxYywweDFjLDB4NzAsMHgxYywweGUwLDB4NmMsMHgzOCwweGZjKSwKKwlMTCgweGZkLDB4ZmQsMHhkMywweGZkLDB4YmIsMHgyZSwweGU3LDB4NDYpLAorCUxMKDB4NGQsMHg0ZCwweDI5LDB4NGQsMHg1MiwweDY0LDB4OWEsMHgxZiksCisJTEwoMHg5MiwweDkyLDB4NzIsMHg5MiwweGU0LDB4ZTAsMHgzOSwweDc2KSwKKwlMTCgweDc1LDB4NzUsMHhjOSwweDc1LDB4OGYsMHhiYywweGVhLDB4ZmEpLAorCUxMKDB4MDYsMHgwNiwweDE4LDB4MDYsMHgzMCwweDFlLDB4MGMsMHgzNiksCisJTEwoMHg4YSwweDhhLDB4MTIsMHg4YSwweDI0LDB4OTgsMHgwOSwweGFlKSwKKwlMTCgweGIyLDB4YjIsMHhmMiwweGIyLDB4ZjksMHg0MCwweDc5LDB4NGIpLAorCUxMKDB4ZTYsMHhlNiwweGJmLDB4ZTYsMHg2MywweDU5LDB4ZDEsMHg4NSksCisJTEwoMHgwZSwweDBlLDB4MzgsMHgwZSwweDcwLDB4MzYsMHgxYywweDdlKSwKKwlMTCgweDFmLDB4MWYsMHg3YywweDFmLDB4ZjgsMHg2MywweDNlLDB4ZTcpLAorCUxMKDB4NjIsMHg2MiwweDk1LDB4NjIsMHgzNywweGY3LDB4YzQsMHg1NSksCisJTEwoMHhkNCwweGQ0LDB4NzcsMHhkNCwweGVlLDB4YTMsMHhiNSwweDNhKSwKKwlMTCgweGE4LDB4YTgsMHg5YSwweGE4LDB4MjksMHgzMiwweDRkLDB4ODEpLAorCUxMKDB4OTYsMHg5NiwweDYyLDB4OTYsMHhjNCwweGY0LDB4MzEsMHg1MiksCisJTEwoMHhmOSwweGY5LDB4YzMsMHhmOSwweDliLDB4M2EsMHhlZiwweDYyKSwKKwlMTCgweGM1LDB4YzUsMHgzMywweGM1LDB4NjYsMHhmNiwweDk3LDB4YTMpLAorCUxMKDB4MjUsMHgyNSwweDk0LDB4MjUsMHgzNSwweGIxLDB4NGEsMHgxMCksCisJTEwoMHg1OSwweDU5LDB4NzksMHg1OSwweGYyLDB4MjAsMHhiMiwweGFiKSwKKwlMTCgweDg0LDB4ODQsMHgyYSwweDg0LDB4NTQsMHhhZSwweDE1LDB4ZDApLAorCUxMKDB4NzIsMHg3MiwweGQ1LDB4NzIsMHhiNywweGE3LDB4ZTQsMHhjNSksCisJTEwoMHgzOSwweDM5LDB4ZTQsMHgzOSwweGQ1LDB4ZGQsMHg3MiwweGVjKSwKKwlMTCgweDRjLDB4NGMsMHgyZCwweDRjLDB4NWEsMHg2MSwweDk4LDB4MTYpLAorCUxMKDB4NWUsMHg1ZSwweDY1LDB4NWUsMHhjYSwweDNiLDB4YmMsMHg5NCksCisJTEwoMHg3OCwweDc4LDB4ZmQsMHg3OCwweGU3LDB4ODUsMHhmMCwweDlmKSwKKwlMTCgweDM4LDB4MzgsMHhlMCwweDM4LDB4ZGQsMHhkOCwweDcwLDB4ZTUpLAorCUxMKDB4OGMsMHg4YywweDBhLDB4OGMsMHgxNCwweDg2LDB4MDUsMHg5OCksCisJTEwoMHhkMSwweGQxLDB4NjMsMHhkMSwweGM2LDB4YjIsMHhiZiwweDE3KSwKKwlMTCgweGE1LDB4YTUsMHhhZSwweGE1LDB4NDEsMHgwYiwweDU3LDB4ZTQpLAorCUxMKDB4ZTIsMHhlMiwweGFmLDB4ZTIsMHg0MywweDRkLDB4ZDksMHhhMSksCisJTEwoMHg2MSwweDYxLDB4OTksMHg2MSwweDJmLDB4ZjgsMHhjMiwweDRlKSwKKwlMTCgweGIzLDB4YjMsMHhmNiwweGIzLDB4ZjEsMHg0NSwweDdiLDB4NDIpLAorCUxMKDB4MjEsMHgyMSwweDg0LDB4MjEsMHgxNSwweGE1LDB4NDIsMHgzNCksCisJTEwoMHg5YywweDljLDB4NGEsMHg5YywweDk0LDB4ZDYsMHgyNSwweDA4KSwKKwlMTCgweDFlLDB4MWUsMHg3OCwweDFlLDB4ZjAsMHg2NiwweDNjLDB4ZWUpLAorCUxMKDB4NDMsMHg0MywweDExLDB4NDMsMHgyMiwweDUyLDB4ODYsMHg2MSksCisJTEwoMHhjNywweGM3LDB4M2IsMHhjNywweDc2LDB4ZmMsMHg5MywweGIxKSwKKwlMTCgweGZjLDB4ZmMsMHhkNywweGZjLDB4YjMsMHgyYiwweGU1LDB4NGYpLAorCUxMKDB4MDQsMHgwNCwweDEwLDB4MDQsMHgyMCwweDE0LDB4MDgsMHgyNCksCisJTEwoMHg1MSwweDUxLDB4NTksMHg1MSwweGIyLDB4MDgsMHhhMiwweGUzKSwKKwlMTCgweDk5LDB4OTksMHg1ZSwweDk5LDB4YmMsMHhjNywweDJmLDB4MjUpLAorCUxMKDB4NmQsMHg2ZCwweGE5LDB4NmQsMHg0ZiwweGM0LDB4ZGEsMHgyMiksCisJTEwoMHgwZCwweDBkLDB4MzQsMHgwZCwweDY4LDB4MzksMHgxYSwweDY1KSwKKwlMTCgweGZhLDB4ZmEsMHhjZiwweGZhLDB4ODMsMHgzNSwweGU5LDB4NzkpLAorCUxMKDB4ZGYsMHhkZiwweDViLDB4ZGYsMHhiNiwweDg0LDB4YTMsMHg2OSksCisJTEwoMHg3ZSwweDdlLDB4ZTUsMHg3ZSwweGQ3LDB4OWIsMHhmYywweGE5KSwKKwlMTCgweDI0LDB4MjQsMHg5MCwweDI0LDB4M2QsMHhiNCwweDQ4LDB4MTkpLAorCUxMKDB4M2IsMHgzYiwweGVjLDB4M2IsMHhjNSwweGQ3LDB4NzYsMHhmZSksCisJTEwoMHhhYiwweGFiLDB4OTYsMHhhYiwweDMxLDB4M2QsMHg0YiwweDlhKSwKKwlMTCgweGNlLDB4Y2UsMHgxZiwweGNlLDB4M2UsMHhkMSwweDgxLDB4ZjApLAorCUxMKDB4MTEsMHgxMSwweDQ0LDB4MTEsMHg4OCwweDU1LDB4MjIsMHg5OSksCisJTEwoMHg4ZiwweDhmLDB4MDYsMHg4ZiwweDBjLDB4ODksMHgwMywweDgzKSwKKwlMTCgweDRlLDB4NGUsMHgyNSwweDRlLDB4NGEsMHg2YiwweDljLDB4MDQpLAorCUxMKDB4YjcsMHhiNywweGU2LDB4YjcsMHhkMSwweDUxLDB4NzMsMHg2NiksCisJTEwoMHhlYiwweGViLDB4OGIsMHhlYiwweDBiLDB4NjAsMHhjYiwweGUwKSwKKwlMTCgweDNjLDB4M2MsMHhmMCwweDNjLDB4ZmQsMHhjYywweDc4LDB4YzEpLAorCUxMKDB4ODEsMHg4MSwweDNlLDB4ODEsMHg3YywweGJmLDB4MWYsMHhmZCksCisJTEwoMHg5NCwweDk0LDB4NmEsMHg5NCwweGQ0LDB4ZmUsMHgzNSwweDQwKSwKKwlMTCgweGY3LDB4ZjcsMHhmYiwweGY3LDB4ZWIsMHgwYywweGYzLDB4MWMpLAorCUxMKDB4YjksMHhiOSwweGRlLDB4YjksMHhhMSwweDY3LDB4NmYsMHgxOCksCisJTEwoMHgxMywweDEzLDB4NGMsMHgxMywweDk4LDB4NWYsMHgyNiwweDhiKSwKKwlMTCgweDJjLDB4MmMsMHhiMCwweDJjLDB4N2QsMHg5YywweDU4LDB4NTEpLAorCUxMKDB4ZDMsMHhkMywweDZiLDB4ZDMsMHhkNiwweGI4LDB4YmIsMHgwNSksCisJTEwoMHhlNywweGU3LDB4YmIsMHhlNywweDZiLDB4NWMsMHhkMywweDhjKSwKKwlMTCgweDZlLDB4NmUsMHhhNSwweDZlLDB4NTcsMHhjYiwweGRjLDB4MzkpLAorCUxMKDB4YzQsMHhjNCwweDM3LDB4YzQsMHg2ZSwweGYzLDB4OTUsMHhhYSksCisJTEwoMHgwMywweDAzLDB4MGMsMHgwMywweDE4LDB4MGYsMHgwNiwweDFiKSwKKwlMTCgweDU2LDB4NTYsMHg0NSwweDU2LDB4OGEsMHgxMywweGFjLDB4ZGMpLAorCUxMKDB4NDQsMHg0NCwweDBkLDB4NDQsMHgxYSwweDQ5LDB4ODgsMHg1ZSksCisJTEwoMHg3ZiwweDdmLDB4ZTEsMHg3ZiwweGRmLDB4OWUsMHhmZSwweGEwKSwKKwlMTCgweGE5LDB4YTksMHg5ZSwweGE5LDB4MjEsMHgzNywweDRmLDB4ODgpLAorCUxMKDB4MmEsMHgyYSwweGE4LDB4MmEsMHg0ZCwweDgyLDB4NTQsMHg2NyksCisJTEwoMHhiYiwweGJiLDB4ZDYsMHhiYiwweGIxLDB4NmQsMHg2YiwweDBhKSwKKwlMTCgweGMxLDB4YzEsMHgyMywweGMxLDB4NDYsMHhlMiwweDlmLDB4ODcpLAorCUxMKDB4NTMsMHg1MywweDUxLDB4NTMsMHhhMiwweDAyLDB4YTYsMHhmMSksCisJTEwoMHhkYywweGRjLDB4NTcsMHhkYywweGFlLDB4OGIsMHhhNSwweDcyKSwKKwlMTCgweDBiLDB4MGIsMHgyYywweDBiLDB4NTgsMHgyNywweDE2LDB4NTMpLAorCUxMKDB4OWQsMHg5ZCwweDRlLDB4OWQsMHg5YywweGQzLDB4MjcsMHgwMSksCisJTEwoMHg2YywweDZjLDB4YWQsMHg2YywweDQ3LDB4YzEsMHhkOCwweDJiKSwKKwlMTCgweDMxLDB4MzEsMHhjNCwweDMxLDB4OTUsMHhmNSwweDYyLDB4YTQpLAorCUxMKDB4NzQsMHg3NCwweGNkLDB4NzQsMHg4NywweGI5LDB4ZTgsMHhmMyksCisJTEwoMHhmNiwweGY2LDB4ZmYsMHhmNiwweGUzLDB4MDksMHhmMSwweDE1KSwKKwlMTCgweDQ2LDB4NDYsMHgwNSwweDQ2LDB4MGEsMHg0MywweDhjLDB4NGMpLAorCUxMKDB4YWMsMHhhYywweDhhLDB4YWMsMHgwOSwweDI2LDB4NDUsMHhhNSksCisJTEwoMHg4OSwweDg5LDB4MWUsMHg4OSwweDNjLDB4OTcsMHgwZiwweGI1KSwKKwlMTCgweDE0LDB4MTQsMHg1MCwweDE0LDB4YTAsMHg0NCwweDI4LDB4YjQpLAorCUxMKDB4ZTEsMHhlMSwweGEzLDB4ZTEsMHg1YiwweDQyLDB4ZGYsMHhiYSksCisJTEwoMHgxNiwweDE2LDB4NTgsMHgxNiwweGIwLDB4NGUsMHgyYywweGE2KSwKKwlMTCgweDNhLDB4M2EsMHhlOCwweDNhLDB4Y2QsMHhkMiwweDc0LDB4ZjcpLAorCUxMKDB4NjksMHg2OSwweGI5LDB4NjksMHg2ZiwweGQwLDB4ZDIsMHgwNiksCisJTEwoMHgwOSwweDA5LDB4MjQsMHgwOSwweDQ4LDB4MmQsMHgxMiwweDQxKSwKKwlMTCgweDcwLDB4NzAsMHhkZCwweDcwLDB4YTcsMHhhZCwweGUwLDB4ZDcpLAorCUxMKDB4YjYsMHhiNiwweGUyLDB4YjYsMHhkOSwweDU0LDB4NzEsMHg2ZiksCisJTEwoMHhkMCwweGQwLDB4NjcsMHhkMCwweGNlLDB4YjcsMHhiZCwweDFlKSwKKwlMTCgweGVkLDB4ZWQsMHg5MywweGVkLDB4M2IsMHg3ZSwweGM3LDB4ZDYpLAorCUxMKDB4Y2MsMHhjYywweDE3LDB4Y2MsMHgyZSwweGRiLDB4ODUsMHhlMiksCisJTEwoMHg0MiwweDQyLDB4MTUsMHg0MiwweDJhLDB4NTcsMHg4NCwweDY4KSwKKwlMTCgweDk4LDB4OTgsMHg1YSwweDk4LDB4YjQsMHhjMiwweDJkLDB4MmMpLAorCUxMKDB4YTQsMHhhNCwweGFhLDB4YTQsMHg0OSwweDBlLDB4NTUsMHhlZCksCisJTEwoMHgyOCwweDI4LDB4YTAsMHgyOCwweDVkLDB4ODgsMHg1MCwweDc1KSwKKwlMTCgweDVjLDB4NWMsMHg2ZCwweDVjLDB4ZGEsMHgzMSwweGI4LDB4ODYpLAorCUxMKDB4ZjgsMHhmOCwweGM3LDB4ZjgsMHg5MywweDNmLDB4ZWQsMHg2YiksCisJTEwoMHg4NiwweDg2LDB4MjIsMHg4NiwweDQ0LDB4YTQsMHgxMSwweGMyKSwKKyNkZWZpbmUgUkMJKCYoQ3gucVsyNTYqTl0pKQorCTB4MTgsMHgyMywweGM2LDB4ZTgsMHg4NywweGI4LDB4MDEsMHg0ZiwJLyogcmNbUk9VTkRTXSAqLworCTB4MzYsMHhhNiwweGQyLDB4ZjUsMHg3OSwweDZmLDB4OTEsMHg1MiwKKwkweDYwLDB4YmMsMHg5YiwweDhlLDB4YTMsMHgwYywweDdiLDB4MzUsCisJMHgxZCwweGUwLDB4ZDcsMHhjMiwweDJlLDB4NGIsMHhmZSwweDU3LAorCTB4MTUsMHg3NywweDM3LDB4ZTUsMHg5ZiwweGYwLDB4NGEsMHhkYSwKKwkweDU4LDB4YzksMHgyOSwweDBhLDB4YjEsMHhhMCwweDZiLDB4ODUsCisJMHhiZCwweDVkLDB4MTAsMHhmNCwweGNiLDB4M2UsMHgwNSwweDY3LAorCTB4ZTQsMHgyNywweDQxLDB4OGIsMHhhNywweDdkLDB4OTUsMHhkOCwKKwkweGZiLDB4ZWUsMHg3YywweDY2LDB4ZGQsMHgxNywweDQ3LDB4OWUsCisJMHhjYSwweDJkLDB4YmYsMHgwNywweGFkLDB4NWEsMHg4MywweDMzCisJfQorfTsKKwordm9pZCB3aGlybHBvb2xfYmxvY2soV0hJUkxQT09MX0NUWCAqY3R4LGNvbnN0IHZvaWQgKmlucCxzaXplX3QgbikKKwl7CisJaW50CXI7CisJY29uc3QgdTggKnA9aW5wOworCXVuaW9uCXsgdTY0IHFbOF07IHU4IGNbNjRdOyB9IFMsSywqSD0odm9pZCAqKWN0eC0+SC5xOworCisjaWZkZWYgR09fRk9SX01NWAorCUdPX0ZPUl9NTVgoY3R4LGlucCxuKTsKKyNlbmRpZgorCQkJCQkJCWRvIHsKKyNpZmRlZiBPUEVOU1NMX1NNQUxMX0ZPT1RQUklOVAorCXU2NAlMWzhdOworCWludAlpOworCisJZm9yIChpPTA7aTw2NDtpKyspCVMuY1tpXSA9IChLLmNbaV0gPSBILT5jW2ldKSBeIHBbaV07CisJZm9yIChyPTA7cjxST1VORFM7cisrKQorCQl7CisJCWZvciAoaT0wO2k8ODtpKyspCisJCQl7CisJCQlMW2ldICA9IGkgPyAwIDogUkNbcl07CisJCQlMW2ldIF49CUMwKEssaSkgICAgICAgXiBDMShLLChpLTEpJjcpIF4KKwkJCQlDMihLLChpLTIpJjcpIF4gQzMoSywoaS0zKSY3KSBeCisJCQkJQzQoSywoaS00KSY3KSBeIEM1KEssKGktNSkmNykgXgorCQkJCUM2KEssKGktNikmNykgXiBDNyhLLChpLTcpJjcpOworCQkJfQorCQltZW1jcHkgKEsucSxMLDY0KTsKKwkJZm9yIChpPTA7aTw4O2krKykKKwkJCXsKKwkJCUxbaV0gXj0gQzAoUyxpKSAgICAgICBeIEMxKFMsKGktMSkmNykgXgorCQkJCUMyKFMsKGktMikmNykgXiBDMyhTLChpLTMpJjcpIF4KKwkJCQlDNChTLChpLTQpJjcpIF4gQzUoUywoaS01KSY3KSBeCisJCQkJQzYoUywoaS02KSY3KSBeIEM3KFMsKGktNykmNyk7CisJCQl9CisJCW1lbWNweSAoUy5xLEwsNjQpOworCQl9CisJZm9yIChpPTA7aTw2NDtpKyspCUgtPmNbaV0gXj0gUy5jW2ldIF4gcFtpXTsKKyNlbHNlCisJdTY0CUwwLEwxLEwyLEwzLEw0LEw1LEw2LEw3OworCisjaWZkZWYgU1RSSUNUX0FMSUdOTUVOVAorCWlmICgoc2l6ZV90KXAgJiA3KQorCQl7CisJCW1lbWNweSAoUy5jLHAsNjQpOworCQlTLnFbMF0gXj0gKEsucVswXSA9IEgtPnFbMF0pOworCQlTLnFbMV0gXj0gKEsucVsxXSA9IEgtPnFbMV0pOworCQlTLnFbMl0gXj0gKEsucVsyXSA9IEgtPnFbMl0pOworCQlTLnFbM10gXj0gKEsucVszXSA9IEgtPnFbM10pOworCQlTLnFbNF0gXj0gKEsucVs0XSA9IEgtPnFbNF0pOworCQlTLnFbNV0gXj0gKEsucVs1XSA9IEgtPnFbNV0pOworCQlTLnFbNl0gXj0gKEsucVs2XSA9IEgtPnFbNl0pOworCQlTLnFbN10gXj0gKEsucVs3XSA9IEgtPnFbN10pOworCQl9CisJZWxzZQorI2VuZGlmCisJCXsKKwkJY29uc3QgdTY0ICpwYSA9IChjb25zdCB1NjQqKXA7CisJCVMucVswXSA9IChLLnFbMF0gPSBILT5xWzBdKSBeIHBhWzBdOworCQlTLnFbMV0gPSAoSy5xWzFdID0gSC0+cVsxXSkgXiBwYVsxXTsKKwkJUy5xWzJdID0gKEsucVsyXSA9IEgtPnFbMl0pIF4gcGFbMl07CisJCVMucVszXSA9IChLLnFbM10gPSBILT5xWzNdKSBeIHBhWzNdOworCQlTLnFbNF0gPSAoSy5xWzRdID0gSC0+cVs0XSkgXiBwYVs0XTsKKwkJUy5xWzVdID0gKEsucVs1XSA9IEgtPnFbNV0pIF4gcGFbNV07CisJCVMucVs2XSA9IChLLnFbNl0gPSBILT5xWzZdKSBeIHBhWzZdOworCQlTLnFbN10gPSAoSy5xWzddID0gSC0+cVs3XSkgXiBwYVs3XTsKKwkJfQorCisJZm9yKHI9MDtyPFJPVU5EUztyKyspCisJCXsKKyNpZmRlZiBTTUFMTF9SRUdJU1RFUl9CQU5LCisJCUwwID0JQzAoSywwKSBeIEMxKEssNykgXiBDMihLLDYpIF4gQzMoSyw1KSBeCisJCQlDNChLLDQpIF4gQzUoSywzKSBeIEM2KEssMikgXiBDNyhLLDEpIF4gUkNbcl07CisJCUwxID0JQzAoSywxKSBeIEMxKEssMCkgXiBDMihLLDcpIF4gQzMoSyw2KSBeCisJCQlDNChLLDUpIF4gQzUoSyw0KSBeIEM2KEssMykgXiBDNyhLLDIpOworCQlMMiA9CUMwKEssMikgXiBDMShLLDEpIF4gQzIoSywwKSBeIEMzKEssNykgXgorCQkJQzQoSyw2KSBeIEM1KEssNSkgXiBDNihLLDQpIF4gQzcoSywzKTsKKwkJTDMgPQlDMChLLDMpIF4gQzEoSywyKSBeIEMyKEssMSkgXiBDMyhLLDApIF4KKwkJCUM0KEssNykgXiBDNShLLDYpIF4gQzYoSyw1KSBeIEM3KEssNCk7CisJCUw0ID0JQzAoSyw0KSBeIEMxKEssMykgXiBDMihLLDIpIF4gQzMoSywxKSBeCisJCQlDNChLLDApIF4gQzUoSyw3KSBeIEM2KEssNikgXiBDNyhLLDUpOworCQlMNSA9CUMwKEssNSkgXiBDMShLLDQpIF4gQzIoSywzKSBeIEMzKEssMikgXgorCQkJQzQoSywxKSBeIEM1KEssMCkgXiBDNihLLDcpIF4gQzcoSyw2KTsKKwkJTDYgPQlDMChLLDYpIF4gQzEoSyw1KSBeIEMyKEssNCkgXiBDMyhLLDMpIF4KKwkJCUM0KEssMikgXiBDNShLLDEpIF4gQzYoSywwKSBeIEM3KEssNyk7CisJCUw3ID0JQzAoSyw3KSBeIEMxKEssNikgXiBDMihLLDUpIF4gQzMoSyw0KSBeCisJCQlDNChLLDMpIF4gQzUoSywyKSBeIEM2KEssMSkgXiBDNyhLLDApOworCisJCUsucVswXSA9IEwwOyBLLnFbMV0gPSBMMTsgSy5xWzJdID0gTDI7IEsucVszXSA9IEwzOworCQlLLnFbNF0gPSBMNDsgSy5xWzVdID0gTDU7IEsucVs2XSA9IEw2OyBLLnFbN10gPSBMNzsKKworCQlMMCBePQlDMChTLDApIF4gQzEoUyw3KSBeIEMyKFMsNikgXiBDMyhTLDUpIF4KKwkJCUM0KFMsNCkgXiBDNShTLDMpIF4gQzYoUywyKSBeIEM3KFMsMSk7CisJCUwxIF49CUMwKFMsMSkgXiBDMShTLDApIF4gQzIoUyw3KSBeIEMzKFMsNikgXgorCQkJQzQoUyw1KSBeIEM1KFMsNCkgXiBDNihTLDMpIF4gQzcoUywyKTsKKwkJTDIgXj0JQzAoUywyKSBeIEMxKFMsMSkgXiBDMihTLDApIF4gQzMoUyw3KSBeCisJCQlDNChTLDYpIF4gQzUoUyw1KSBeIEM2KFMsNCkgXiBDNyhTLDMpOworCQlMMyBePQlDMChTLDMpIF4gQzEoUywyKSBeIEMyKFMsMSkgXiBDMyhTLDApIF4KKwkJCUM0KFMsNykgXiBDNShTLDYpIF4gQzYoUyw1KSBeIEM3KFMsNCk7CisJCUw0IF49CUMwKFMsNCkgXiBDMShTLDMpIF4gQzIoUywyKSBeIEMzKFMsMSkgXgorCQkJQzQoUywwKSBeIEM1KFMsNykgXiBDNihTLDYpIF4gQzcoUyw1KTsKKwkJTDUgXj0JQzAoUyw1KSBeIEMxKFMsNCkgXiBDMihTLDMpIF4gQzMoUywyKSBeCisJCQlDNChTLDEpIF4gQzUoUywwKSBeIEM2KFMsNykgXiBDNyhTLDYpOworCQlMNiBePQlDMChTLDYpIF4gQzEoUyw1KSBeIEMyKFMsNCkgXiBDMyhTLDMpIF4KKwkJCUM0KFMsMikgXiBDNShTLDEpIF4gQzYoUywwKSBeIEM3KFMsNyk7CisJCUw3IF49CUMwKFMsNykgXiBDMShTLDYpIF4gQzIoUyw1KSBeIEMzKFMsNCkgXgorCQkJQzQoUywzKSBeIEM1KFMsMikgXiBDNihTLDEpIF4gQzcoUywwKTsKKworCQlTLnFbMF0gPSBMMDsgUy5xWzFdID0gTDE7IFMucVsyXSA9IEwyOyBTLnFbM10gPSBMMzsKKwkJUy5xWzRdID0gTDQ7IFMucVs1XSA9IEw1OyBTLnFbNl0gPSBMNjsgUy5xWzddID0gTDc7CisjZWxzZQorCQlMMCAgPSBDMChLLDApOyBMMSAgPSBDMShLLDApOyBMMiAgPSBDMihLLDApOyBMMyAgPSBDMyhLLDApOworCQlMNCAgPSBDNChLLDApOyBMNSAgPSBDNShLLDApOyBMNiAgPSBDNihLLDApOyBMNyAgPSBDNyhLLDApOworCQlMMCBePSBSQ1tyXTsKKworCQlMMSBePSBDMChLLDEpOyBMMiBePSBDMShLLDEpOyBMMyBePSBDMihLLDEpOyBMNCBePSBDMyhLLDEpOworCQlMNSBePSBDNChLLDEpOyBMNiBePSBDNShLLDEpOyBMNyBePSBDNihLLDEpOyBMMCBePSBDNyhLLDEpOworCisJCUwyIF49IEMwKEssMik7IEwzIF49IEMxKEssMik7IEw0IF49IEMyKEssMik7IEw1IF49IEMzKEssMik7CisJCUw2IF49IEM0KEssMik7IEw3IF49IEM1KEssMik7IEwwIF49IEM2KEssMik7IEwxIF49IEM3KEssMik7CisKKwkJTDMgXj0gQzAoSywzKTsgTDQgXj0gQzEoSywzKTsgTDUgXj0gQzIoSywzKTsgTDYgXj0gQzMoSywzKTsKKwkJTDcgXj0gQzQoSywzKTsgTDAgXj0gQzUoSywzKTsgTDEgXj0gQzYoSywzKTsgTDIgXj0gQzcoSywzKTsKKworCQlMNCBePSBDMChLLDQpOyBMNSBePSBDMShLLDQpOyBMNiBePSBDMihLLDQpOyBMNyBePSBDMyhLLDQpOworCQlMMCBePSBDNChLLDQpOyBMMSBePSBDNShLLDQpOyBMMiBePSBDNihLLDQpOyBMMyBePSBDNyhLLDQpOworCisJCUw1IF49IEMwKEssNSk7IEw2IF49IEMxKEssNSk7IEw3IF49IEMyKEssNSk7IEwwIF49IEMzKEssNSk7CisJCUwxIF49IEM0KEssNSk7IEwyIF49IEM1KEssNSk7IEwzIF49IEM2KEssNSk7IEw0IF49IEM3KEssNSk7CisKKwkJTDYgXj0gQzAoSyw2KTsgTDcgXj0gQzEoSyw2KTsgTDAgXj0gQzIoSyw2KTsgTDEgXj0gQzMoSyw2KTsKKwkJTDIgXj0gQzQoSyw2KTsgTDMgXj0gQzUoSyw2KTsgTDQgXj0gQzYoSyw2KTsgTDUgXj0gQzcoSyw2KTsKKworCQlMNyBePSBDMChLLDcpOyBMMCBePSBDMShLLDcpOyBMMSBePSBDMihLLDcpOyBMMiBePSBDMyhLLDcpOworCQlMMyBePSBDNChLLDcpOyBMNCBePSBDNShLLDcpOyBMNSBePSBDNihLLDcpOyBMNiBePSBDNyhLLDcpOworCisJCUsucVswXSA9IEwwOyBLLnFbMV0gPSBMMTsgSy5xWzJdID0gTDI7IEsucVszXSA9IEwzOworCQlLLnFbNF0gPSBMNDsgSy5xWzVdID0gTDU7IEsucVs2XSA9IEw2OyBLLnFbN10gPSBMNzsKKworCQlMMCBePSBDMChTLDApOyBMMSBePSBDMShTLDApOyBMMiBePSBDMihTLDApOyBMMyBePSBDMyhTLDApOworCQlMNCBePSBDNChTLDApOyBMNSBePSBDNShTLDApOyBMNiBePSBDNihTLDApOyBMNyBePSBDNyhTLDApOworCisJCUwxIF49IEMwKFMsMSk7IEwyIF49IEMxKFMsMSk7IEwzIF49IEMyKFMsMSk7IEw0IF49IEMzKFMsMSk7CisJCUw1IF49IEM0KFMsMSk7IEw2IF49IEM1KFMsMSk7IEw3IF49IEM2KFMsMSk7IEwwIF49IEM3KFMsMSk7CisKKwkJTDIgXj0gQzAoUywyKTsgTDMgXj0gQzEoUywyKTsgTDQgXj0gQzIoUywyKTsgTDUgXj0gQzMoUywyKTsKKwkJTDYgXj0gQzQoUywyKTsgTDcgXj0gQzUoUywyKTsgTDAgXj0gQzYoUywyKTsgTDEgXj0gQzcoUywyKTsKKworCQlMMyBePSBDMChTLDMpOyBMNCBePSBDMShTLDMpOyBMNSBePSBDMihTLDMpOyBMNiBePSBDMyhTLDMpOworCQlMNyBePSBDNChTLDMpOyBMMCBePSBDNShTLDMpOyBMMSBePSBDNihTLDMpOyBMMiBePSBDNyhTLDMpOworCisJCUw0IF49IEMwKFMsNCk7IEw1IF49IEMxKFMsNCk7IEw2IF49IEMyKFMsNCk7IEw3IF49IEMzKFMsNCk7CisJCUwwIF49IEM0KFMsNCk7IEwxIF49IEM1KFMsNCk7IEwyIF49IEM2KFMsNCk7IEwzIF49IEM3KFMsNCk7CisKKwkJTDUgXj0gQzAoUyw1KTsgTDYgXj0gQzEoUyw1KTsgTDcgXj0gQzIoUyw1KTsgTDAgXj0gQzMoUyw1KTsKKwkJTDEgXj0gQzQoUyw1KTsgTDIgXj0gQzUoUyw1KTsgTDMgXj0gQzYoUyw1KTsgTDQgXj0gQzcoUyw1KTsKKworCQlMNiBePSBDMChTLDYpOyBMNyBePSBDMShTLDYpOyBMMCBePSBDMihTLDYpOyBMMSBePSBDMyhTLDYpOworCQlMMiBePSBDNChTLDYpOyBMMyBePSBDNShTLDYpOyBMNCBePSBDNihTLDYpOyBMNSBePSBDNyhTLDYpOworCisJCUw3IF49IEMwKFMsNyk7IEwwIF49IEMxKFMsNyk7IEwxIF49IEMyKFMsNyk7IEwyIF49IEMzKFMsNyk7CisJCUwzIF49IEM0KFMsNyk7IEw0IF49IEM1KFMsNyk7IEw1IF49IEM2KFMsNyk7IEw2IF49IEM3KFMsNyk7CisKKwkJUy5xWzBdID0gTDA7IFMucVsxXSA9IEwxOyBTLnFbMl0gPSBMMjsgUy5xWzNdID0gTDM7CisJCVMucVs0XSA9IEw0OyBTLnFbNV0gPSBMNTsgUy5xWzZdID0gTDY7IFMucVs3XSA9IEw3OworI2VuZGlmCisJCX0KKworI2lmZGVmIFNUUklDVF9BTElHTk1FTlQKKwlpZiAoKHNpemVfdClwICYgNykKKwkJeworCQlpbnQgaTsKKwkJZm9yKGk9MDtpPDY0O2krKykJSC0+Y1tpXSBePSBTLmNbaV0gXiBwW2ldOworCQl9CisJZWxzZQorI2VuZGlmCisJCXsKKwkJY29uc3QgdTY0ICpwYT0oY29uc3QgdTY0ICopcDsKKwkJSC0+cVswXSBePSBTLnFbMF0gXiBwYVswXTsKKwkJSC0+cVsxXSBePSBTLnFbMV0gXiBwYVsxXTsKKwkJSC0+cVsyXSBePSBTLnFbMl0gXiBwYVsyXTsKKwkJSC0+cVszXSBePSBTLnFbM10gXiBwYVszXTsKKwkJSC0+cVs0XSBePSBTLnFbNF0gXiBwYVs0XTsKKwkJSC0+cVs1XSBePSBTLnFbNV0gXiBwYVs1XTsKKwkJSC0+cVs2XSBePSBTLnFbNl0gXiBwYVs2XTsKKwkJSC0+cVs3XSBePSBTLnFbN10gXiBwYVs3XTsKKwkJfQorI2VuZGlmCisJCQkJCQkJcCArPSA2NDsKKwkJCQkJCQl9IHdoaWxlKC0tbik7CisJfQpkaWZmIC0tZ2l0IGEvY3J5cHRvL3docmxwb29sL3dwX2Rnc3QuYyBiL2NyeXB0by93aHJscG9vbC93cF9kZ3N0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQzM2ViNgotLS0gL2Rldi9udWxsCisrKyBiL2NyeXB0by93aHJscG9vbC93cF9kZ3N0LmMKQEAgLTAsMCArMSwyNTUgQEAKKy8qKgorICogVGhlIFdoaXJscG9vbCBoYXNoaW5nIGZ1bmN0aW9uLgorICoKKyAqIDxQPgorICogPGI+UmVmZXJlbmNlczwvYj4KKyAqCisgKiA8UD4KKyAqIFRoZSBXaGlybHBvb2wgYWxnb3JpdGhtIHdhcyBkZXZlbG9wZWQgYnkKKyAqIDxhIGhyZWY9Im1haWx0bzpwYmFycmV0b0BzY29wdXMuY29tLmJyIj5QYXVsbyBTLiBMLiBNLiBCYXJyZXRvPC9hPiBhbmQKKyAqIDxhIGhyZWY9Im1haWx0bzp2aW5jZW50LnJpam1lbkBjcnlwdG9tYXRoaWMuY29tIj5WaW5jZW50IFJpam1lbjwvYT4uCisgKgorICogU2VlCisgKiAgICAgIFAuUy5MLk0uIEJhcnJldG8sIFYuIFJpam1lbiwKKyAqICAgICAgYGBUaGUgV2hpcmxwb29sIGhhc2hpbmcgZnVuY3Rpb24sJycKKyAqICAgICAgTkVTU0lFIHN1Ym1pc3Npb24sIDIwMDAgKHR3ZWFrZWQgdmVyc2lvbiwgMjAwMSksCisgKiAgICAgIDxodHRwczovL3d3dy5jb3NpYy5lc2F0Lmt1bGV1dmVuLmFjLmJlL25lc3NpZS93b3Jrc2hvcC9zdWJtaXNzaW9ucy93aGlybHBvb2wuemlwPgorICoKKyAqIEJhc2VkIG9uICJAdmVyc2lvbiAzLjAgKDIwMDMuMDMuMTIpIiBieSBQYXVsbyBTLkwuTS4gQmFycmV0byBhbmQKKyAqIFZpbmNlbnQgUmlqbWVuLiBMb29rdXAgInJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbnMiIG9uCisgKiA8aHR0cDovL3BsYW5ldGEudGVycmEuY29tLmJyL2luZm9ybWF0aWNhL3BhdWxvYmFycmV0by8+CisgKgorICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1JTICcnQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MKKyAqIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09OVFJJQlVUT1JTIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SCisgKiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKKyAqIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFCisgKiBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLAorICogRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworLyoKKyAqIE9wZW5TU0wtc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gbm90ZXMuCisgKgorICogV0hJUkxQT09MX1VwZGF0ZSBhcyB3ZWxsIGFzIG9uZS1zdHJva2UgV0hJUkxQT09MIGJvdGggZXhwZWN0CisgKiBudW1iZXIgb2YgKmJ5dGVzKiBhcyBpbnB1dCBsZW5ndGggYXJndW1lbnQuIEJpdC1vcmllbnRlZCByb3V0aW5lCisgKiBhcyBzcGVjaWZpZWQgYnkgYXV0aG9ycyBpcyBjYWxsZWQgV0hJUkxQT09MX0JpdFVwZGF0ZVshXSBhbmQKKyAqIGRvZXMgbm90IGhhdmUgb25lLXN0cm9rZSBjb3VudGVycGFydC4KKyAqCisgKiBXSElSTFBPT0xfQml0VXBkYXRlIGltcGxlbWVudHMgYnl0ZS1vcmllbnRlZCBsb29wLCBlc3NlbnRpYWxseQorICogdG8gc2VydmUgV0hJUkxQT09MX1VwZGF0ZS4gVGhpcyBpcyBkb25lIGZvciBwZXJmb3JtYW5jZS4KKyAqCisgKiBVbmxpa2UgYXV0aG9ycycgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uLCBibG9jayBwcm9jZXNzaW5nCisgKiByb3V0aW5lIHdoaXJscG9vbF9ibG9jayBpcyBkZXNpZ25lZCB0byBvcGVyYXRlIG9uIG11bHRpLWJsb2NrCisgKiBpbnB1dC4gVGhpcyBpcyBkb25lIGZvciBwZXJmb21hbmNlLgorICovCisKKyNpbmNsdWRlICJ3cF9sb2NsLmgiCisjaW5jbHVkZSA8c3RyaW5nLmg+CisKK3ZvaWQgV0hJUkxQT09MX0luaXQJKFdISVJMUE9PTF9DVFggKmMpIHsgbWVtc2V0IChjLDAsc2l6ZW9mKCpjKSk7IH0KKwordm9pZCBXSElSTFBPT0xfVXBkYXRlCShXSElSTFBPT0xfQ1RYICpjLGNvbnN0IHZvaWQgKl9pbnAsc2l6ZV90IGJ5dGVzKQorCXsKKwkvKiBXZWxsLCBsYXJnZXN0IHN1aXRhYmxlIGNodW5rIHNpemUgYWN0dWFsbHkgaXMKKwkgKiAoMTw8KHNpemVvZihzaXplX3QpKjgtMykpLTY0LCBidXQgYmVsb3cgbnVtYmVyCisJICogaXMgbGFyZ2UgZW5vdWdoIGZvciBub3QgdG8gY2FyZSBhYm91dCBleGNlc3NpdmUKKwkgKiBjYWxscyB0byBXSElSTFBPT0xfQml0VXBkYXRlLi4uICovCisJc2l6ZV90IGNodW5rID0gKChzaXplX3QpMSk8PChzaXplb2Yoc2l6ZV90KSo4LTQpOworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucCA9IF9pbnA7CisKKwl3aGlsZSAoYnl0ZXM+PWNodW5rKQorCQl7CisJCVdISVJMUE9PTF9CaXRVcGRhdGUoYyxpbnAsY2h1bmsqOCk7CisJCWJ5dGVzIC09IGNodW5rOworCQlpbnAgICArPSBjaHVuazsKKwkJfQorCWlmIChieXRlcykKKwkJV0hJUkxQT09MX0JpdFVwZGF0ZShjLGlucCxieXRlcyo4KTsKKwl9CisKK3ZvaWQgV0hJUkxQT09MX0JpdFVwZGF0ZShXSElSTFBPT0xfQ1RYICpjLGNvbnN0IHZvaWQgKl9pbnAsc2l6ZV90IGJpdHMpCisJeworCXNpemVfdAkJbjsKKwl1bnNpZ25lZCBpbnQJYml0b2ZmID0gYy0+Yml0b2ZmLAorCQkJYml0cmVtID0gYml0b2ZmJTgsCisJCQlpbnBnYXAgPSAoOC0odW5zaWduZWQgaW50KWJpdHMlOCkmNzsKKwljb25zdCB1bnNpZ25lZCBjaGFyICppbnA9X2lucDsKKworCS8qIFRoaXMgMjU2LWJpdCBpbmNyZW1lbnQgcHJvY2VkdXJlIHJlbGllcyBvbiB0aGUgc2l6ZV90CisJICogYmVpbmcgbmF0dXJhbCBzaXplIG9mIENQVSByZWdpc3Rlciwgc28gdGhhdCB3ZSBkb24ndAorCSAqIGhhdmUgdG8gbWFzayB0aGUgdmFsdWUgaW4gb3JkZXIgdG8gZGV0ZWN0IG92ZXJmbG93cy4gKi8KKwljLT5iaXRsZW5bMF0gKz0gYml0czsKKwlpZiAoYy0+Yml0bGVuWzBdIDwgYml0cykJLyogb3ZlcmZsb3cgKi8KKwkJeworCQluID0gMTsKKwkJZG8gIHsgCWMtPmJpdGxlbltuXSsrOworCQkgICAgfSB3aGlsZShjLT5iaXRsZW5bbl09PTAKKwkJICAgCSAgICAmJiArK248KFdISVJMUE9PTF9DT1VOVEVSL3NpemVvZihzaXplX3QpKSk7CisJCX0KKworI2lmbmRlZiBPUEVOU1NMX1NNQUxMX0ZPT1RQUklOVAorCXJlY29uc2lkZXI6CisJaWYgKGlucGdhcD09MCAmJiBiaXRyZW09PTApCS8qIGJ5dGUtb3JpZW50ZWQgbG9vcCAqLworCQl7CisJCXdoaWxlIChiaXRzKQorCQkJeworCQkJaWYgKGJpdG9mZj09MCAmJiAobj1iaXRzL1dISVJMUE9PTF9CQkxPQ0spKQorCQkJCXsKKwkJCQl3aGlybHBvb2xfYmxvY2soYyxpbnAsbik7CisJCQkJaW5wICArPSBuKldISVJMUE9PTF9CQkxPQ0svODsKKwkJCQliaXRzICU9IFdISVJMUE9PTF9CQkxPQ0s7CisJCQkJfQorCQkJZWxzZQorCQkJCXsKKwkJCQl1bnNpZ25lZCBpbnQgYnl0ZW9mZiA9IGJpdG9mZi84OworCisJCQkJYml0cmVtID0gV0hJUkxQT09MX0JCTE9DSyAtIGJpdG9mZjsvKiByZS11c2UgYml0cmVtICovCisJCQkJaWYgKGJpdHMgPj0gYml0cmVtKQorCQkJCQl7CisJCQkJCWJpdHMgLT0gYml0cmVtOworCQkJCQliaXRyZW0gLz0gODsKKwkJCQkJbWVtY3B5KGMtPmRhdGErYnl0ZW9mZixpbnAsYml0cmVtKTsKKwkJCQkJaW5wICArPSBiaXRyZW07CisJCQkJCXdoaXJscG9vbF9ibG9jayhjLGMtPmRhdGEsMSk7CisJCQkJCWJpdG9mZiA9IDA7CisJCQkJCX0KKwkJCQllbHNlCisJCQkJCXsKKwkJCQkJbWVtY3B5KGMtPmRhdGErYnl0ZW9mZixpbnAsYml0cy84KTsKKwkJCQkJYml0b2ZmICs9IGJpdHM7CisJCQkJCWJpdHMgPSAwOworCQkJCQl9CisJCQkJYy0+Yml0b2ZmID0gYml0b2ZmOworCQkJCX0KKwkJCX0KKwkJfQorCWVsc2UJCQkJLyogYml0LW9yaWVudGVkIGxvb3AgKi8KKyNlbmRpZgorCQl7CisJCS8qCisJCQkgICBpbnAKKwkJCSAgIHwKKwkJCSAgICstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLQorCQkJICAgICAgfHx8fHx8fHx8fHx8fHx8fHx8fHx8CisJCQkgICArLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0KKwkJKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLQorCQl8fHx8fHx8fHx8fHx8fAkJCQljLT5kYXRhCisJCSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0KKwkJCXwKKwkJCWMtPmJpdG9mZi84CisJCSovCisJCXdoaWxlIChiaXRzKQorCQkJeworCQkJdW5zaWduZWQgaW50CWJ5dGVvZmYJPSBiaXRvZmYvODsKKwkJCXVuc2lnbmVkIGNoYXIJYjsKKworI2lmbmRlZiBPUEVOU1NMX1NNQUxMX0ZPT1RQUklOVAorCQkJaWYgKGJpdHJlbT09aW5wZ2FwKQorCQkJCXsKKwkJCQljLT5kYXRhW2J5dGVvZmYrK10gfD0gaW5wWzBdICYgKDB4ZmY+PmlucGdhcCk7CisJCQkJaW5wZ2FwID0gOC1pbnBnYXA7CisJCQkJYml0b2ZmICs9IGlucGdhcDsgIGJpdHJlbSA9IDA7CS8qIGJpdG9mZiU4ICovCisJCQkJYml0cyAgIC09IGlucGdhcDsgIGlucGdhcCA9IDA7CS8qIGJpdHMlOCAgICovCisJCQkJaW5wKys7CisJCQkJaWYgKGJpdG9mZj09V0hJUkxQT09MX0JCTE9DSykKKwkJCQkJeworCQkJCQl3aGlybHBvb2xfYmxvY2soYyxjLT5kYXRhLDEpOworCQkJCQliaXRvZmYgPSAwOworCQkJCQl9CisJCQkJYy0+Yml0b2ZmID0gYml0b2ZmOworCQkJCWdvdG8gcmVjb25zaWRlcjsKKwkJCQl9CisJCQllbHNlCisjZW5kaWYKKwkJCWlmIChiaXRzPj04KQorCQkJCXsKKwkJCQliICA9ICgoaW5wWzBdPDxpbnBnYXApIHwgKGlucFsxXT4+KDgtaW5wZ2FwKSkpOworCQkJCWIgJj0gMHhmZjsKKwkJCQlpZiAoYml0cmVtKQljLT5kYXRhW2J5dGVvZmYrK10gfD0gYj4+Yml0cmVtOworCQkJCWVsc2UJCWMtPmRhdGFbYnl0ZW9mZisrXSAgPSBiOworCQkJCWJpdG9mZiArPSA4OworCQkJCWJpdHMgICAtPSA4OworCQkJCWlucCsrOworCQkJCWlmIChiaXRvZmY+PVdISVJMUE9PTF9CQkxPQ0spCisJCQkJCXsKKwkJCQkJd2hpcmxwb29sX2Jsb2NrKGMsYy0+ZGF0YSwxKTsKKwkJCQkJYnl0ZW9mZiAgPSAwOworCQkJCQliaXRvZmYgICU9IFdISVJMUE9PTF9CQkxPQ0s7CisJCQkJCX0KKwkJCQlpZiAoYml0cmVtKQljLT5kYXRhW2J5dGVvZmZdID0gYjw8KDgtYml0cmVtKTsKKwkJCQl9CisJCQllbHNlCS8qIHJlbWFpbmluZyBsZXNzIHRoYW4gOCBiaXRzICovCisJCQkJeworCQkJCWIgPSAoaW5wWzBdPDxpbnBnYXApJjB4ZmY7CisJCQkJaWYgKGJpdHJlbSkJYy0+ZGF0YVtieXRlb2ZmKytdIHw9IGI+PmJpdHJlbTsKKwkJCQllbHNlCQljLT5kYXRhW2J5dGVvZmYrK10gID0gYjsKKwkJCQliaXRvZmYgKz0gYml0czsKKwkJCQlpZiAoYml0b2ZmPT1XSElSTFBPT0xfQkJMT0NLKQorCQkJCQl7CisJCQkJCXdoaXJscG9vbF9ibG9jayhjLGMtPmRhdGEsMSk7CisJCQkJCWJ5dGVvZmYgID0gMDsKKwkJCSAgICAgICAgCWJpdG9mZiAgJT0gV0hJUkxQT09MX0JCTE9DSzsKKwkJCQkJfQorCQkJCWlmIChiaXRyZW0pCWMtPmRhdGFbYnl0ZW9mZl0gPSBiPDwoOC1iaXRyZW0pOworCQkJCWJpdHMgPSAwOworCQkJCX0KKwkJCWMtPmJpdG9mZiA9IGJpdG9mZjsKKwkJCX0KKwkJfQorCX0KKwordm9pZCBXSElSTFBPT0xfRmluYWwJKHVuc2lnbmVkIGNoYXIgKm1kLFdISVJMUE9PTF9DVFggKmMpCisJeworCXVuc2lnbmVkIGludAliaXRvZmYgID0gYy0+Yml0b2ZmLAorCQkJYnl0ZW9mZiA9IGJpdG9mZi84OworCWludAkJaSxqOworCXNpemVfdAkJdjsKKwl1bnNpZ25lZCBjaGFyICAqcDsKKworCWJpdG9mZiAlPSA4OworCWlmIChiaXRvZmYpCWMtPmRhdGFbYnl0ZW9mZl0gfD0gMHg4MD4+Yml0b2ZmOworCWVsc2UJCWMtPmRhdGFbYnl0ZW9mZl0gID0gMHg4MDsKKwlieXRlb2ZmKys7CisKKwkvKiBwYWQgd2l0aCB6ZXJvcyAqLworCWlmIChieXRlb2ZmID4gKFdISVJMUE9PTF9CQkxPQ0svOC1XSElSTFBPT0xfQ09VTlRFUikpCisJCXsKKwkJaWYgKGJ5dGVvZmY8V0hJUkxQT09MX0JCTE9DSy84KQorCQkJbWVtc2V0KCZjLT5kYXRhW2J5dGVvZmZdLDAsV0hJUkxQT09MX0JCTE9DSy84LWJ5dGVvZmYpOworCQl3aGlybHBvb2xfYmxvY2soYyxjLT5kYXRhLDEpOworCQlieXRlb2ZmID0gMDsKKwkJfQorCWlmIChieXRlb2ZmIDwgKFdISVJMUE9PTF9CQkxPQ0svOC1XSElSTFBPT0xfQ09VTlRFUikpCisJCW1lbXNldCgmYy0+ZGF0YVtieXRlb2ZmXSwwLAorCQkJKFdISVJMUE9PTF9CQkxPQ0svOC1XSElSTFBPT0xfQ09VTlRFUiktYnl0ZW9mZik7CisJLyogc21hc2ggMjU2LWJpdCBjLT5iaXRsZW4gaW4gYmlnLWVuZGlhbiBvcmRlciAqLworCXAgPSAmYy0+ZGF0YVtXSElSTFBPT0xfQkJMT0NLLzgtMV07CS8qIGxhc3QgYnl0ZSBpbiBjLT5kYXRhICovCisJZm9yKGk9MDtpPFdISVJMUE9PTF9DT1VOVEVSL3NpemVvZihzaXplX3QpO2krKykKKwkJZm9yKHY9Yy0+Yml0bGVuW2ldLGo9MDtqPHNpemVvZihzaXplX3QpO2orKyx2Pj49OCkKKwkJCSpwLS0gPSAodW5zaWduZWQgY2hhcikodiYweGZmKTsKKworCXdoaXJscG9vbF9ibG9jayhjLGMtPmRhdGEsMSk7CisKKwltZW1jcHkobWQsYy0+SC5jLFdISVJMUE9PTF9ESUdFU1RfTEVOR1RIKTsKKwltZW1zZXQoYywwLHNpemVvZigqYykpOworCX0KKwordW5zaWduZWQgY2hhciAqV0hJUkxQT09MKGNvbnN0IHZvaWQgKmlucCwgc2l6ZV90IGJ5dGVzLHVuc2lnbmVkIGNoYXIgKm1kKQorCXsKKwlXSElSTFBPT0xfQ1RYIGN0eDsKKwlzdGF0aWMgdW5zaWduZWQgY2hhciBtW1dISVJMUE9PTF9ESUdFU1RfTEVOR1RIXTsKKworCWlmIChtZCA9PSBOVUxMKSBtZD1tOworCVdISVJMUE9PTF9Jbml0KCZjdHgpOworCVdISVJMUE9PTF9VcGRhdGUoJmN0eCxpbnAsYnl0ZXMpOworCVdISVJMUE9PTF9GaW5hbChtZCwmY3R4KTsKKwlyZXR1cm4obWQpOworCX0KZGlmZiAtLWdpdCBhL2NyeXB0by93aHJscG9vbC93cF9sb2NsLmggYi9jcnlwdG8vd2hybHBvb2wvd3BfbG9jbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0ZTU2YTMKLS0tIC9kZXYvbnVsbAorKysgYi9jcnlwdG8vd2hybHBvb2wvd3BfbG9jbC5oCkBAIC0wLDAgKzEsMyBAQAorI2luY2x1ZGUgPG9wZW5zc2wvd2hybHBvb2wuaD4KKwordm9pZCB3aGlybHBvb2xfYmxvY2soV0hJUkxQT09MX0NUWCAqLGNvbnN0IHZvaWQgKixzaXplX3QpOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL3docmxwb29sL3dwX3Rlc3QuYyBiL2NyeXB0by93aHJscG9vbC93cF90ZXN0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzY4YzJjNgotLS0gL2Rldi9udWxsCisrKyBiL2NyeXB0by93aHJscG9vbC93cF90ZXN0LmMKQEAgLTAsMCArMSwyMjggQEAKKy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgKiBDb3B5cmlnaHQgKGMpIDIwMDUgVGhlIE9wZW5TU0wgUHJvamVjdC4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICovCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKworI2luY2x1ZGUgPG9wZW5zc2wvd2hybHBvb2wuaD4KKyNpbmNsdWRlIDxvcGVuc3NsL2NyeXB0by5oPgorCisjaWYgZGVmaW5lZChPUEVOU1NMX05PX1dISVJMUE9PTCkKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCit7CisgICAgcHJpbnRmKCJObyBXaGlybHBvb2wgc3VwcG9ydFxuIik7CisgICAgcmV0dXJuKDApOworfQorI2Vsc2UKKworLyogSVNPL0lFQyAxMDExOC0zIHRlc3QgdmVjdG9yIHNldCAqLwordW5zaWduZWQgY2hhciBpc29fdGVzdF8xW1dISVJMUE9PTF9ESUdFU1RfTEVOR1RIXSA9IHsKKwkweDE5LDB4RkEsMHg2MSwweEQ3LDB4NTUsMHgyMiwweEE0LDB4NjYsCisJMHg5QiwweDQ0LDB4RTMsMHg5QywweDFELDB4MkUsMHgxNywweDI2LAorCTB4QzUsMHgzMCwweDIzLDB4MjEsMHgzMCwweEQ0LDB4MDcsMHhGOCwKKwkweDlBLDB4RkUsMHhFMCwweDk2LDB4NDksMHg5NywweEY3LDB4QTcsCisJMHgzRSwweDgzLDB4QkUsMHg2OSwweDhCLDB4MjgsMHg4RiwweEVCLAorCTB4Q0YsMHg4OCwweEUzLDB4RTAsMHgzQywweDRGLDB4MDcsMHg1NywKKwkweEVBLDB4ODksMHg2NCwweEU1LDB4OUIsMHg2MywweEQ5LDB4MzcsCisJMHgwOCwweEIxLDB4MzgsMHhDQywweDQyLDB4QTYsMHg2RSwweEIzIH07CisKK3Vuc2lnbmVkIGNoYXIgaXNvX3Rlc3RfMltXSElSTFBPT0xfRElHRVNUX0xFTkdUSF0gPSB7CisJMHg4QSwweENBLDB4MjYsMHgwMiwweDc5LDB4MkEsMHhFQywweDZGLAorCTB4MTEsMHhBNiwweDcyLDB4MDYsMHg1MywweDFGLDB4QjcsMHhENywKKwkweEYwLDB4REYsMHhGNSwweDk0LDB4MTMsMHgxNCwweDVFLDB4NjksCisJMHg3MywweEM0LDB4NTAsMHgwMSwweEQwLDB4MDgsMHg3QiwweDQyLAorCTB4RDEsMHgxQiwweEM2LDB4NDUsMHg0MSwweDNBLDB4RUYsMHhGNiwKKwkweDNBLDB4NDIsMHgzOSwweDFBLDB4MzksMHgxNCwweDVBLDB4NTksCisJMHgxQSwweDkyLDB4MjAsMHgwRCwweDU2LDB4MDEsMHg5NSwweEU1LAorCTB4M0IsMHg0NywweDg1LDB4ODQsMHhGRCwweEFFLDB4MjMsMHgxQSB9OworCit1bnNpZ25lZCBjaGFyIGlzb190ZXN0XzNbV0hJUkxQT09MX0RJR0VTVF9MRU5HVEhdID0geworCTB4NEUsMHgyNCwweDQ4LDB4QTQsMHhDNiwweEY0LDB4ODYsMHhCQiwKKwkweDE2LDB4QjYsMHg1NiwweDJDLDB4NzMsMHhCNCwweDAyLDB4MEIsCisJMHhGMywweDA0LDB4M0UsMHgzQSwweDczLDB4MUIsMHhDRSwweDcyLAorCTB4MUEsMHhFMSwweEIzLDB4MDMsMHhEOSwweDdFLDB4NkQsMHg0QywKKwkweDcxLDB4ODEsMHhFRSwweEJELDB4QjYsMHhDNSwweDdFLDB4MjcsCisJMHg3RCwweDBFLDB4MzQsMHg5NSwweDcxLDB4MTQsMHhDQiwweEQ2LAorCTB4QzcsMHg5NywweEZDLDB4OUQsMHg5NSwweEQ4LDB4QjUsMHg4MiwKKwkweEQyLDB4MjUsMHgyOSwweDIwLDB4NzYsMHhENCwweEVFLDB4RjUgfTsKKwordW5zaWduZWQgY2hhciBpc29fdGVzdF80W1dISVJMUE9PTF9ESUdFU1RfTEVOR1RIXSA9IHsKKwkweDM3LDB4OEMsMHg4NCwweEE0LDB4MTIsMHg2RSwweDJELDB4QzYsCisJMHhFNSwweDZELDB4Q0MsMHg3NCwweDU4LDB4MzcsMHg3QSwweEFDLAorCTB4ODMsMHg4RCwweDAwLDB4MDMsMHgyMiwweDMwLDB4RjUsMHgzQywKKwkweEUxLDB4RjUsMHg3MCwweDBDLDB4MEYsMHhGQiwweDRELDB4M0IsCisJMHg4NCwweDIxLDB4NTUsMHg3NiwweDU5LDB4RUYsMHg1NSwweEMxLAorCTB4MDYsMHhCNCwweEI1LDB4MkEsMHhDNSwweEE0LDB4QUEsMHhBNiwKKwkweDkyLDB4RUQsMHg5MiwweDAwLDB4NTIsMHg4MywweDhGLDB4MzMsCisJMHg2MiwweEU4LDB4NkQsMHhCRCwweDM3LDB4QTgsMHg5MCwweDNFIH07CisKK3Vuc2lnbmVkIGNoYXIgaXNvX3Rlc3RfNVtXSElSTFBPT0xfRElHRVNUX0xFTkdUSF0gPSB7CisJMHhGMSwweEQ3LDB4NTQsMHg2NiwweDI2LDB4MzYsMHhGRiwweEU5LAorCTB4MkMsMHg4MiwweEVCLDB4QjksMHgyMSwweDJBLDB4NDgsMHg0QSwKKwkweDhELDB4MzgsMHg2MywweDFFLDB4QUQsMHg0MiwweDM4LDB4RjUsCisJMHg0NCwweDJFLDB4RTEsMHgzQiwweDgwLDB4NTQsMHhFNCwweDFCLAorCTB4MDgsMHhCRiwweDJBLDB4OTIsMHg1MSwweEMzLDB4MEIsMHg2QSwKKwkweDBCLDB4OEEsMHhBRSwweDg2LDB4MTcsMHg3QSwweEI0LDB4QTYsCisJMHhGNiwweDhGLDB4NjcsMHgzRSwweDcyLDB4MDcsMHg4NiwweDVELAorCTB4NUQsMHg5OCwweDE5LDB4QTMsMHhEQiwweEE0LDB4RUIsMHgzQiB9OworCit1bnNpZ25lZCBjaGFyIGlzb190ZXN0XzZbV0hJUkxQT09MX0RJR0VTVF9MRU5HVEhdID0geworCTB4REMsMHgzNywweEUwLDB4MDgsMHhDRiwweDlFLDB4RTYsMHg5QiwKKwkweEYxLDB4MUYsMHgwMCwweEVELDB4OUEsMHhCQSwweDI2LDB4OTAsCisJMHgxRCwweEQ3LDB4QzIsMHg4QywweERFLDB4QzAsMHg2NiwweENDLAorCTB4NkEsMHhGNCwweDJFLDB4NDAsMHhGOCwweDJGLDB4M0EsMHgxRSwKKwkweDA4LDB4RUIsMHhBMiwweDY2LDB4MjksMHgxMiwweDlELDB4OEYsCisJMHhCNywweENCLDB4NTcsMHgyMSwweDFCLDB4OTIsMHg4MSwweEE2LAorCTB4NTUsMHgxNywweENDLDB4ODcsMHg5RCwweDdCLDB4OTYsMHgyMSwKKwkweDQyLDB4QzYsMHg1RiwweDVBLDB4N0EsMHhGMCwweDE0LDB4NjcgfTsKKwordW5zaWduZWQgY2hhciBpc29fdGVzdF83W1dISVJMUE9PTF9ESUdFU1RfTEVOR1RIXSA9IHsKKwkweDQ2LDB4NkUsMHhGMSwweDhCLDB4QUIsMHhCMCwweDE1LDB4NEQsCisJMHgyNSwweEI5LDB4RDMsMHg4QSwweDY0LDB4MTQsMHhGNSwweEMwLAorCTB4ODcsMHg4NCwweDM3LDB4MkIsMHhDQywweEIyLDB4MDQsMHhENiwKKwkweDU0LDB4OUMsMHg0QSwweEZBLDB4REIsMHg2MCwweDE0LDB4MjksCisJMHg0RCwweDVCLDB4RDgsMHhERiwweDJBLDB4NkMsMHg0NCwweEU1LAorCTB4MzgsMHhDRCwweDA0LDB4N0IsMHgyNiwweDgxLDB4QTUsMHgxQSwKKwkweDJDLDB4NjAsMHg0OCwweDFFLDB4ODgsMHhDNSwweEEyLDB4MEIsCisJMHgyQywweDJBLDB4ODAsMHhDRiwweDNBLDB4OUEsMHgwOCwweDNCIH07CisKK3Vuc2lnbmVkIGNoYXIgaXNvX3Rlc3RfOFtXSElSTFBPT0xfRElHRVNUX0xFTkdUSF0gPSB7CisJMHgyQSwweDk4LDB4N0UsMHhBNCwweDBGLDB4OTEsMHg3MCwweDYxLAorCTB4RjUsMHhENiwweEYwLDB4QTAsMHhFNCwweDY0LDB4NEYsMHg0OCwKKwkweDhBLDB4N0EsMHg1QSwweDUyLDB4REUsMHhFRSwweDY1LDB4NjIsCisJMHgwNywweEM1LDB4NjIsMHhGOSwweDg4LDB4RTksMHg1QywweDY5LAorCTB4MTYsMHhCRCwweEM4LDB4MDMsMHgxQiwweEM1LDB4QkUsMHgxQiwKKwkweDdCLDB4OTQsMHg3NiwweDM5LDB4RkUsMHgwNSwweDBCLDB4NTYsCisJMHg5MywweDlCLDB4QUEsMHhBMCwweEFELDB4RkYsMHg5QSwweEU2LAorCTB4NzQsMHg1QiwweDdCLDB4MTgsMHgxQywweDNCLDB4RTMsMHhGRCB9OworCit1bnNpZ25lZCBjaGFyIGlzb190ZXN0XzlbV0hJUkxQT09MX0RJR0VTVF9MRU5HVEhdID0geworCTB4MEMsMHg5OSwweDAwLDB4NUIsMHhFQiwweDU3LDB4RUYsMHhGNSwKKwkweDBBLDB4N0MsMHhGMCwweDA1LDB4NTYsMHgwRCwweERGLDB4NUQsCisJMHgyOSwweDA1LDB4N0YsMHhEOCwweDZCLDB4MjAsMHhCRiwweEQ2LAorCTB4MkQsMHhFQywweEEwLDB4RjEsMHhDQywweEVBLDB4NEEsMHhGNSwKKwkweDFGLDB4QzEsMHg1NCwweDkwLDB4RUQsMHhEQywweDQ3LDB4QUYsCisJMHgzMiwweEJCLDB4MkIsMHg2NiwweEMzLDB4NEYsMHhGOSwweEFELAorCTB4OEMsMHg2MCwweDA4LDB4QUQsMHg2NywweDdGLDB4NzcsMHgxMiwKKwkweDY5LDB4NTMsMHhCMiwweDI2LDB4RTQsMHhFRCwweDhCLDB4MDEgfTsKKworaW50IG1haW4gKGludCBhcmdjLGNoYXIgKmFyZ3ZbXSkKK3sgdW5zaWduZWQgY2hhciBtZFtXSElSTFBPT0xfRElHRVNUX0xFTkdUSF07CisgIGludAkJaTsKKyAgV0hJUkxQT09MX0NUWAljdHg7CisKKyNpZmRlZiBPUEVOU1NMX0lBMzJfU1NFMgorICAgIC8qIEFsdGVybmF0aXZlIHRvIHRoaXMgaXMgdG8gY2FsbCBPcGVuU1NMX2FkZF9hbGxfYWxnb3JpdGhtcy4uLgorICAgICAqIFRoZSBiZWxvdyBjb2RlIGlzIHJldGFpbmVkIGV4Y2x1c2l2ZWx5IGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMuICovCisgICAgeyBjaGFyICAgICAgKmVudjsKKworCWlmICgoZW52PWdldGVudigiT1BFTlNTTF9pYTMyY2FwIikpKQorCSAgICBPUEVOU1NMX2lhMzJjYXAgPSBzdHJ0b3VsIChlbnYsTlVMTCwwKTsKKyAgICB9CisjZW5kaWYKKworICAgIGZwcmludGYoc3Rkb3V0LCJUZXN0aW5nIFdoaXJscG9vbCAiKTsKKworICAgIFdISVJMUE9PTCgiIiwwLG1kKTsKKyAgICBpZiAobWVtY21wKG1kLGlzb190ZXN0XzEsc2l6ZW9mKGlzb190ZXN0XzEpKSkKKyAgICB7ICAgZmZsdXNoKHN0ZG91dCk7CisJZnByaW50ZihzdGRlcnIsIlxuVEVTVCAxIG9mIDkgZmFpbGVkLlxuIik7CisJcmV0dXJuIDE7CisgICAgfQorICAgIGVsc2UKKwlmcHJpbnRmKHN0ZG91dCwiLiIpOyBmZmx1c2goc3Rkb3V0KTsKKworICAgIFdISVJMUE9PTCgiYSIsMSxtZCk7CisgICAgaWYgKG1lbWNtcChtZCxpc29fdGVzdF8yLHNpemVvZihpc29fdGVzdF8yKSkpCisgICAgeyAgIGZmbHVzaChzdGRvdXQpOworCWZwcmludGYoc3RkZXJyLCJcblRFU1QgMiBvZiA5IGZhaWxlZC5cbiIpOworCXJldHVybiAxOworICAgIH0KKyAgICBlbHNlCisJZnByaW50ZihzdGRvdXQsIi4iKTsgZmZsdXNoKHN0ZG91dCk7CisKKyAgICBXSElSTFBPT0woImFiYyIsMyxtZCk7CisgICAgaWYgKG1lbWNtcChtZCxpc29fdGVzdF8zLHNpemVvZihpc29fdGVzdF8zKSkpCisgICAgeyAgIGZmbHVzaChzdGRvdXQpOworCWZwcmludGYoc3RkZXJyLCJcblRFU1QgMyBvZiA5IGZhaWxlZC5cbiIpOworCXJldHVybiAxOworICAgIH0KKyAgICBlbHNlCisJZnByaW50ZihzdGRvdXQsIi4iKTsgZmZsdXNoKHN0ZG91dCk7CisKKyAgICBXSElSTFBPT0woIm1lc3NhZ2UgZGlnZXN0IiwxNCxtZCk7CisgICAgaWYgKG1lbWNtcChtZCxpc29fdGVzdF80LHNpemVvZihpc29fdGVzdF80KSkpCisgICAgeyAgIGZmbHVzaChzdGRvdXQpOworCWZwcmludGYoc3RkZXJyLCJcblRFU1QgNCBvZiA5IGZhaWxlZC5cbiIpOworCXJldHVybiAxOworICAgIH0KKyAgICBlbHNlCisJZnByaW50ZihzdGRvdXQsIi4iKTsgZmZsdXNoKHN0ZG91dCk7CisKKyAgICBXSElSTFBPT0woImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiwyNixtZCk7CisgICAgaWYgKG1lbWNtcChtZCxpc29fdGVzdF81LHNpemVvZihpc29fdGVzdF81KSkpCisgICAgeyAgIGZmbHVzaChzdGRvdXQpOworCWZwcmludGYoc3RkZXJyLCJcblRFU1QgNSBvZiA5IGZhaWxlZC5cbiIpOworCXJldHVybiAxOworICAgIH0KKyAgICBlbHNlCisJZnByaW50ZihzdGRvdXQsIi4iKTsgZmZsdXNoKHN0ZG91dCk7CisKKyAgICBXSElSTFBPT0woCSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiIKKwkJImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IgorCQkiMDEyMzQ1Njc4OSIsNjIsbWQpOworICAgIGlmIChtZW1jbXAobWQsaXNvX3Rlc3RfNixzaXplb2YoaXNvX3Rlc3RfNikpKQorICAgIHsgICBmZmx1c2goc3Rkb3V0KTsKKwlmcHJpbnRmKHN0ZGVyciwiXG5URVNUIDYgb2YgOSBmYWlsZWQuXG4iKTsKKwlyZXR1cm4gMTsKKyAgICB9CisgICAgZWxzZQorCWZwcmludGYoc3Rkb3V0LCIuIik7IGZmbHVzaChzdGRvdXQpOworCisgICAgV0hJUkxQT09MKAkiMTIzNDU2Nzg5MCIiMTIzNDU2Nzg5MCIiMTIzNDU2Nzg5MCIiMTIzNDU2Nzg5MCIKKwkJIjEyMzQ1Njc4OTAiIjEyMzQ1Njc4OTAiIjEyMzQ1Njc4OTAiIjEyMzQ1Njc4OTAiLDgwLG1kKTsKKyAgICBpZiAobWVtY21wKG1kLGlzb190ZXN0Xzcsc2l6ZW9mKGlzb190ZXN0XzcpKSkKKyAgICB7ICAgZmZsdXNoKHN0ZG91dCk7CisJZnByaW50ZihzdGRlcnIsIlxuVEVTVCA3IG9mIDkgZmFpbGVkLlxuIik7CisJcmV0dXJuIDE7CisgICAgfQorICAgIGVsc2UKKwlmcHJpbnRmKHN0ZG91dCwiLiIpOyBmZmx1c2goc3Rkb3V0KTsKKworICAgIFdISVJMUE9PTCgiYWJjZGJjZGVjZGVmZGVmZ2VmZ2hmZ2hpZ2hpamhpamsiLDMyLG1kKTsKKyAgICBpZiAobWVtY21wKG1kLGlzb190ZXN0Xzgsc2l6ZW9mKGlzb190ZXN0XzgpKSkKKyAgICB7ICAgZmZsdXNoKHN0ZG91dCk7CisJZnByaW50ZihzdGRlcnIsIlxuVEVTVCA4IG9mIDkgZmFpbGVkLlxuIik7CisJcmV0dXJuIDE7CisgICAgfQorICAgIGVsc2UKKwlmcHJpbnRmKHN0ZG91dCwiLiIpOyBmZmx1c2goc3Rkb3V0KTsKKyAKKyAgICBXSElSTFBPT0xfSW5pdCAoJmN0eCk7CisgICAgZm9yIChpPTA7aTwxMDAwMDAwO2krPTI4OCkKKwlXSElSTFBPT0xfVXBkYXRlICgmY3R4LAkiYWFhYWFhYWEiImFhYWFhYWFhIiJhYWFhYWFhYSIiYWFhYWFhYWEiCisJCQkJImFhYWFhYWFhIiJhYWFhYWFhYSIiYWFhYWFhYWEiImFhYWFhYWFhIgorCQkJCSJhYWFhYWFhYSIiYWFhYWFhYWEiImFhYWFhYWFhIiJhYWFhYWFhYSIKKwkJCQkiYWFhYWFhYWEiImFhYWFhYWFhIiJhYWFhYWFhYSIiYWFhYWFhYWEiCisJCQkJImFhYWFhYWFhIiJhYWFhYWFhYSIiYWFhYWFhYWEiImFhYWFhYWFhIgorCQkJCSJhYWFhYWFhYSIiYWFhYWFhYWEiImFhYWFhYWFhIiJhYWFhYWFhYSIKKwkJCQkiYWFhYWFhYWEiImFhYWFhYWFhIiJhYWFhYWFhYSIiYWFhYWFhYWEiCisJCQkJImFhYWFhYWFhIiJhYWFhYWFhYSIiYWFhYWFhYWEiImFhYWFhYWFhIgorCQkJCSJhYWFhYWFhYSIiYWFhYWFhYWEiImFhYWFhYWFhIiJhYWFhYWFhYSIsCisJCQkJKDEwMDAwMDAtaSk8Mjg4PzEwMDAwMDAtaToyODgpOworICAgIFdISVJMUE9PTF9GaW5hbCAobWQsJmN0eCk7CisgICAgaWYgKG1lbWNtcChtZCxpc29fdGVzdF85LHNpemVvZihpc29fdGVzdF85KSkpCisgICAgeyAgIGZmbHVzaChzdGRvdXQpOworCWZwcmludGYoc3RkZXJyLCJcblRFU1QgOSBvZiA5IGZhaWxlZC5cbiIpOworCXJldHVybiAxOworICAgIH0KKyAgICBlbHNlCisJZnByaW50ZihzdGRvdXQsIi4iKTsgZmZsdXNoKHN0ZG91dCk7CisKKyAgICBmcHJpbnRmKHN0ZG91dCwiIHBhc3NlZC5cbiIpOyBmZmx1c2goc3Rkb3V0KTsKKworICByZXR1cm4gMDsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvdGVzdC9NYWtlZmlsZSBiL3Rlc3QvTWFrZWZpbGUKaW5kZXggODg1MmJjYy4uM2JkNDA3ZCAxMDA2NDQKLS0tIGEvdGVzdC9NYWtlZmlsZQorKysgYi90ZXN0L01ha2VmaWxlCkBAIC00NCw2ICs0NCw3IEBACiBNRDRURVNUPQltZDR0ZXN0CiBNRDVURVNUPQltZDV0ZXN0CiBITUFDVEVTVD0JaG1hY3Rlc3QKK1dQVEVTVD0JCXdwX3Rlc3QKIFJDMlRFU1Q9CXJjMnRlc3QKIFJDNFRFU1Q9CXJjNHRlc3QKIFJDNVRFU1Q9CXJjNXRlc3QKQEAgLTYyLDcgKzYzLDcgQEAKIFRFU1RTPQkJYWxsdGVzdHMKIAogRVhFPQkkKEJOVEVTVCkkKEVYRV9FWFQpICQoRUNURVNUKSQoRVhFX0VYVCkgICQoRUNEU0FURVNUKSQoRVhFX0VYVCkgJChFQ0RIVEVTVCkkKEVYRV9FWFQpICQoSURFQVRFU1QpJChFWEVfRVhUKSBcCi0JJChNRDJURVNUKSQoRVhFX0VYVCkgICQoTUQ0VEVTVCkkKEVYRV9FWFQpICQoTUQ1VEVTVCkkKEVYRV9FWFQpICQoSE1BQ1RFU1QpJChFWEVfRVhUKSBcCisJJChNRDJURVNUKSQoRVhFX0VYVCkgICQoTUQ0VEVTVCkkKEVYRV9FWFQpICQoTUQ1VEVTVCkkKEVYRV9FWFQpICQoSE1BQ1RFU1QpJChFWEVfRVhUKSAkKFdQVEVTVCkkKEVYRV9FWFQpIFwKIAkkKFJDMlRFU1QpJChFWEVfRVhUKSAkKFJDNFRFU1QpJChFWEVfRVhUKSAkKFJDNVRFU1QpJChFWEVfRVhUKSBcCiAJJChERVNURVNUKSQoRVhFX0VYVCkgJChTSEFURVNUKSQoRVhFX0VYVCkgJChTSEExVEVTVCkkKEVYRV9FWFQpICQoU0hBMjU2VEVTVCkkKEVYRV9FWFQpICQoU0hBNTEyVEVTVCkkKEVYRV9FWFQpIFwKIAkkKE1EQzJURVNUKSQoRVhFX0VYVCkgJChSTURURVNUKSQoRVhFX0VYVCkgXApAQCAtNzQsNyArNzUsNyBAQAogCiBPQko9CSQoQk5URVNUKS5vICQoRUNURVNUKS5vICAkKEVDRFNBVEVTVCkubyAkKEVDREhURVNUKS5vICQoSURFQVRFU1QpLm8gXAogCSQoTUQyVEVTVCkubyAkKE1ENFRFU1QpLm8gJChNRDVURVNUKS5vIFwKLQkkKEhNQUNURVNUKS5vIFwKKwkkKEhNQUNURVNUKS5vICQoV1BURVNUKS5vIFwKIAkkKFJDMlRFU1QpLm8gJChSQzRURVNUKS5vICQoUkM1VEVTVCkubyBcCiAJJChERVNURVNUKS5vICQoU0hBVEVTVCkubyAkKFNIQTFURVNUKS5vICQoU0hBMjU2VEVTVCkubyAkKFNIQTUxMlRFU1QpLm8gXAogCSQoTURDMlRFU1QpLm8gJChSTURURVNUKS5vIFwKQEAgLTgzLDcgKzg0LDcgQEAKIAkkKEVWUFRFU1QpLm8KIFNSQz0JJChCTlRFU1QpLmMgJChFQ1RFU1QpLmMgICQoRUNEU0FURVNUKS5jICQoRUNESFRFU1QpLmMgJChJREVBVEVTVCkuYyBcCiAJJChNRDJURVNUKS5jICAkKE1ENFRFU1QpLmMgJChNRDVURVNUKS5jIFwKLQkkKEhNQUNURVNUKS5jIFwKKwkkKEhNQUNURVNUKS5jICQoV1BURVNUKS5jIFwKIAkkKFJDMlRFU1QpLmMgJChSQzRURVNUKS5jICQoUkM1VEVTVCkuYyBcCiAJJChERVNURVNUKS5jICQoU0hBVEVTVCkuYyAkKFNIQTFURVNUKS5jICQoTURDMlRFU1QpLmMgJChSTURURVNUKS5jIFwKIAkkKFJBTkRURVNUKS5jICQoREhURVNUKS5jICQoRU5HSU5FVEVTVCkuYyAkKENBU1RURVNUKS5jIFwKQEAgLTEyNSw3ICsxMjYsNyBAQAogCiBhbGx0ZXN0czogXAogCXRlc3RfZGVzIHRlc3RfaWRlYSB0ZXN0X3NoYSB0ZXN0X21kNCB0ZXN0X21kNSB0ZXN0X2htYWMgXAotCXRlc3RfbWQyIHRlc3RfbWRjMiBcCisJdGVzdF9tZDIgdGVzdF9tZGMyIHRlc3Rfd3AgXAogCXRlc3Rfcm1kIHRlc3RfcmMyIHRlc3RfcmM0IHRlc3RfcmM1IHRlc3RfYmYgdGVzdF9jYXN0IHRlc3RfYWVzIFwKIAl0ZXN0X3JhbmQgdGVzdF9ibiB0ZXN0X2VjIHRlc3RfZWNkc2EgdGVzdF9lY2RoIFwKIAl0ZXN0X2VuYyB0ZXN0X3g1MDkgdGVzdF9yc2EgdGVzdF9jcmwgdGVzdF9zaWQgXApAQCAtMTU5LDYgKzE2MCw5IEBACiB0ZXN0X2htYWM6CiAJLi4vdXRpbC9zaGxpYl93cmFwLnNoIC4vJChITUFDVEVTVCkKIAordGVzdF93cDoKKwkuLi91dGlsL3NobGliX3dyYXAuc2ggLi8kKFdQVEVTVCkKKwogdGVzdF9tZDI6CiAJLi4vdXRpbC9zaGxpYl93cmFwLnNoIC4vJChNRDJURVNUKQogCkBAIC0zNjMsNiArMzY3LDkgQEAKICQoSE1BQ1RFU1QpJChFWEVfRVhUKTogJChITUFDVEVTVCkubyAkKERMSUJDUllQVE8pCiAJQHRhcmdldD0kKEhNQUNURVNUKTsgJChCVUlMRF9DTUQpCiAKKyQoV1BURVNUKSQoRVhFX0VYVCk6ICQoV1BURVNUKS5vICQoRExJQkNSWVBUTykKKwlAdGFyZ2V0PSQoV1BURVNUKTsgJChCVUlMRF9DTUQpCisKICQoUkMyVEVTVCkkKEVYRV9FWFQpOiAkKFJDMlRFU1QpLm8gJChETElCQ1JZUFRPKQogCUB0YXJnZXQ9JChSQzJURVNUKTsgJChCVUlMRF9DTUQpCiAKQEAgLTYxMywzICs2MjAsOCBAQAogc3NsdGVzdC5vOiAuLi9pbmNsdWRlL29wZW5zc2wvc3RhY2suaCAuLi9pbmNsdWRlL29wZW5zc2wvc3ltaGFja3MuaAogc3NsdGVzdC5vOiAuLi9pbmNsdWRlL29wZW5zc2wvdGxzMS5oIC4uL2luY2x1ZGUvb3BlbnNzbC94NTA5LmgKIHNzbHRlc3QubzogLi4vaW5jbHVkZS9vcGVuc3NsL3g1MDlfdmZ5LmggLi4vaW5jbHVkZS9vcGVuc3NsL3g1MDl2My5oIHNzbHRlc3QuYword3BfdGVzdC5vOiAuLi9pbmNsdWRlL29wZW5zc2wvY3J5cHRvLmggLi4vaW5jbHVkZS9vcGVuc3NsL2Vfb3MyLmgKK3dwX3Rlc3QubzogLi4vaW5jbHVkZS9vcGVuc3NsL29wZW5zc2xjb25mLmggLi4vaW5jbHVkZS9vcGVuc3NsL29wZW5zc2x2LmgKK3dwX3Rlc3QubzogLi4vaW5jbHVkZS9vcGVuc3NsL29zc2xfdHlwLmggLi4vaW5jbHVkZS9vcGVuc3NsL3NhZmVzdGFjay5oCit3cF90ZXN0Lm86IC4uL2luY2x1ZGUvb3BlbnNzbC9zdGFjay5oIC4uL2luY2x1ZGUvb3BlbnNzbC9zeW1oYWNrcy5oCit3cF90ZXN0Lm86IC4uL2luY2x1ZGUvb3BlbnNzbC93aHJscG9vbC5oIHdwX3Rlc3QuYwo=