I2lmZGVmIE9QRU5TU0xfRklQU0NBTklTVEVSCiNpbmNsdWRlIDxvcGVuc3NsL2ZpcHNzeW1zLmg+CiNlbmRpZgoKI2lmIGRlZmluZWQoX19TVU5QUk9fQykgJiYgZGVmaW5lZChfX3NwYXJjdjkpCiMgZGVmaW5lIEFCSTY0ICAvKiBUaGV5J3ZlIHNhaWQgLXhhcmNoPXY5IGF0IGNvbW1hbmQgbGluZSAqLwojZWxpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiBkZWZpbmVkKF9fYXJjaDY0X18pCiMgZGVmaW5lIEFCSTY0ICAvKiBUaGV5J3ZlIHNhaWQgLW02NCBhdCBjb21tYW5kIGxpbmUgKi8KI2VuZGlmCgojaWZkZWYgQUJJNjQKICAucmVnaXN0ZXIJJWcyLCNzY3JhdGNoCiAgLnJlZ2lzdGVyCSVnMywjc2NyYXRjaAojIGRlZmluZQlGUkFNRQktMTkyCiMgZGVmaW5lCUJJQVMJMjA0NwojZWxzZQojIGRlZmluZQlGUkFNRQktOTYKIyBkZWZpbmUJQklBUwkwCiNlbmRpZgoKLnRleHQKLmFsaWduCTMyCi5nbG9iYWwJT1BFTlNTTF93aXBlX2NwdQoudHlwZQlPUEVOU1NMX3dpcGVfY3B1LCNmdW5jdGlvbgohIEtlZXAgaW4gbWluZCB0aGF0IHRoaXMgZG9lcyBub3QgZXhjdXNlIHVzIGZyb20gd2lwaW5nIHRoZSBzdGFjayEKISBUaGlzIHJvdXRpbmUgd2lwZXMgcmVnaXN0ZXJzLCBidXQgbm90IHRoZSBiYWNraW5nIHN0b3JlIFt3aGljaAohIHJlc2lkZXMgb24gdGhlIHN0YWNrLCB0b3dhcmQgbG93ZXIgYWRkcmVzc2VzXS4gVG8gZmFjaWxpdGF0ZSBmb3IKISBzdGFjayB3aXBpbmcgSSByZXR1cm4gcG9pbnRlciB0byB0aGUgdG9wIG9mIHN0YWNrIG9mIHRoZSAqY2FsbGVyKi4KT1BFTlNTTF93aXBlX2NwdToKCXNhdmUJJXNwLEZSQU1FLCVzcAoJbm9wCiNpZmRlZiBfX3N1bgojaW5jbHVkZSA8c3lzL3RyYXAuaD4KCXRhCVNUX0NMRUFOX1dJTkRPV1MKI2Vsc2UKCWNhbGwJLndhbGsucmVnLndpbnMKI2VuZGlmCglub3AKCWNhbGwJLlBJQy56ZXJvLnVwCgltb3YJLnplcm8tKC4tNCksJW8wCglsZAlbJW8wXSwlZjAKCWxkCVslbzBdLCVmMQoKCXN1YmNjCSVnMCwxLCVvMAoJISBGb2xsb3dpbmcgaXMgVjkgInJkICVjY3IsJW8wIiBpbnN0cnVjdGlvbi4gSG93ZXZlciEgVjgKCSEgc3BlY2lmaWNhdGlvbiBzYXlzIHRoYXQgaXQgKCJyZCAlYXNyMiwlbzAiIGluIFY4IHRlcm1zKSBkb2VzCgkhIG5vdCBjYXVzZSBpbGxlZ2FsX2luc3RydWN0aW9uIHRyYXAuIEl0IHRoZXJlZm9yZSBjYW4gYmUgdXNlZAoJISB0byBkZXRlcm1pbmUgaWYgdGhlIENQVSB0aGUgY29kZSBpcyBleGVjdXRpbmcgb24gaXMgVjgtIG9yCgkhIFY5LWNvbXBsaWFudCwgYXMgVjkgcmV0dXJucyBhIGRpc3RpbmN0IHZhbHVlIG9mIDB4OTksCgkhICJuZWdhdGl2ZSIgYW5kICJib3Jyb3ciIGJpdHMgc2V0IGluIGJvdGggJWljYyBhbmQgJXhjYy4KCS53b3JkCTB4OTE0MDgwMDAJIXJkCSVjY3IsJW8wCgljbXAJJW8wLDB4OTkKCWJuZQkudjgKCW5vcAoJCQkhIEV2ZW4gdGhvdWdoIHdlIGRvIG5vdCB1c2UgJWZwIHJlZ2lzdGVyIGJhbmssCgkJCSEgd2Ugd2lwZSBpdCBhcyBtZW1jcHkgbWlnaHQgaGF2ZSB1c2VkIGl0Li4uCgkJCS53b3JkCTB4YmZhMDAwNDAJIWZtb3ZkCSVmMCwlZjYyCgkJCS53b3JkCTB4YmJhMDAwNDAJIS4uLgoJCQkud29yZAkweGI3YTAwMDQwCgkJCS53b3JkCTB4YjNhMDAwNDAKCQkJLndvcmQJMHhhZmEwMDA0MAoJCQkud29yZAkweGFiYTAwMDQwCgkJCS53b3JkCTB4YTdhMDAwNDAKCQkJLndvcmQJMHhhM2EwMDA0MAoJCQkud29yZAkweDlmYTAwMDQwCgkJCS53b3JkCTB4OWJhMDAwNDAKCQkJLndvcmQJMHg5N2EwMDA0MAoJCQkud29yZAkweDkzYTAwMDQwCgkJCS53b3JkCTB4OGZhMDAwNDAKCQkJLndvcmQJMHg4YmEwMDA0MAoJCQkud29yZAkweDg3YTAwMDQwCgkJCS53b3JkCTB4ODNhMDAwNDAJIWZtb3ZkCSVmMCwlZjMyCi52ODoJCQlmbW92cwklZjEsJWYzMQoJY2xyCSVvMAoJCQlmbW92cwklZjAsJWYzMAoJY2xyCSVvMQoJCQlmbW92cwklZjEsJWYyOQoJY2xyCSVvMgoJCQlmbW92cwklZjAsJWYyOAoJY2xyCSVvMwoJCQlmbW92cwklZjEsJWYyNwoJY2xyCSVvNAoJCQlmbW92cwklZjAsJWYyNgoJY2xyCSVvNQoJCQlmbW92cwklZjEsJWYyNQoJY2xyCSVvNwoJCQlmbW92cwklZjAsJWYyNAoJY2xyCSVsMAoJCQlmbW92cwklZjEsJWYyMwoJY2xyCSVsMQoJCQlmbW92cwklZjAsJWYyMgoJY2xyCSVsMgoJCQlmbW92cwklZjEsJWYyMQoJY2xyCSVsMwoJCQlmbW92cwklZjAsJWYyMAoJY2xyCSVsNAoJCQlmbW92cwklZjEsJWYxOQoJY2xyCSVsNQoJCQlmbW92cwklZjAsJWYxOAoJY2xyCSVsNgoJCQlmbW92cwklZjEsJWYxNwoJY2xyCSVsNwoJCQlmbW92cwklZjAsJWYxNgoJY2xyCSVpMAoJCQlmbW92cwklZjEsJWYxNQoJY2xyCSVpMQoJCQlmbW92cwklZjAsJWYxNAoJY2xyCSVpMgoJCQlmbW92cwklZjEsJWYxMwoJY2xyCSVpMwoJCQlmbW92cwklZjAsJWYxMgoJY2xyCSVpNAoJCQlmbW92cwklZjEsJWYxMQoJY2xyCSVpNQoJCQlmbW92cwklZjAsJWYxMAoJY2xyCSVnMQoJCQlmbW92cwklZjEsJWY5CgljbHIJJWcyCgkJCWZtb3ZzCSVmMCwlZjgKCWNscgklZzMKCQkJZm1vdnMJJWYxLCVmNwoJY2xyCSVnNAoJCQlmbW92cwklZjAsJWY2CgljbHIJJWc1CgkJCWZtb3ZzCSVmMSwlZjUKCQkJZm1vdnMJJWYwLCVmNAoJCQlmbW92cwklZjEsJWYzCgkJCWZtb3ZzCSVmMCwlZjIKCglhZGQJJWZwLEJJQVMsJWkwCSEgcmV0dXJuIHBvaW50ZXIgdG8gY2FsbGVytHMgdG9wIG9mIHN0YWNrCgoJcmV0CglyZXN0b3JlCgouemVybzoJLmxvbmcJMHgwLDB4MAouUElDLnplcm8udXA6CglyZXRsCglhZGQJJW8wLCVvNywlbzAKI2lmZGVmIERFQlVHCi5nbG9iYWwJd2Fsa19yZWdfd2lucwoudHlwZQl3YWxrX3JlZ193aW5zLCNmdW5jdGlvbgp3YWxrX3JlZ193aW5zOgojZW5kaWYKLndhbGsucmVnLndpbnM6CglzYXZlCSVzcCxGUkFNRSwlc3AKCWNtcAklaTcsJW83CgliZQkyZgoJY2xyCSVvMAoJY21wCSVvNywwCSEgY29tcGlsZXIgbmV2ZXIgY2xlYW5zICVvNy4uLgoJYmUJMWYJISBjb3VsZCBoYXZlIGJlZW4gYSBsZWFmIGZ1bmN0aW9uLi4uCgljbHIJJW8xCgljYWxsCS53YWxrLnJlZy53aW5zCglub3AKMToJY2xyCSVvMgoJY2xyCSVvMwoJY2xyCSVvNAoJY2xyCSVvNQoJY2xyCSVvNwoJY2xyCSVsMAoJY2xyCSVsMQoJY2xyCSVsMgoJY2xyCSVsMwoJY2xyCSVsNAoJY2xyCSVsNQoJY2xyCSVsNgoJY2xyCSVsNwoJYWRkCSVvMCwxLCVpMAkhIHVzZWQgZm9yIGRlYnVnZ2luZwoyOglyZXQKCXJlc3RvcmUKLnNpemUJT1BFTlNTTF93aXBlX2NwdSwuLU9QRU5TU0xfd2lwZV9jcHUKCi5nbG9iYWwJT1BFTlNTTF9hdG9taWNfYWRkCi50eXBlCU9QRU5TU0xfYXRvbWljX2FkZCwjZnVuY3Rpb24KLmFsaWduCTMyCk9QRU5TU0xfYXRvbWljX2FkZDoKI2lmbmRlZiBBQkk2NAoJc3ViY2MJJWcwLDEsJW8yCgkud29yZAkweDk1NDA4MDAwCSFyZAklY2NyLCVvMiwgc2VlIGNvbW1lbnQgYWJvdmUKCWNtcAklbzIsMHg5OQoJYmUJLnY5Cglub3AKCXNhdmUJJXNwLEZSQU1FLCVzcAoJYmEJLmVudGVyCglub3AKI2lmZGVmIF9fc3VuCiEgTm90ZSB0aGF0IHlvdSBkbyBub3QgaGF2ZSB0byBsaW5rIHdpdGggbGlidGhyZWFkIHRvIGNhbGwgdGhyX3lpZWxkLAohIGFzIGxpYmMgcHJvdmlkZXMgYSBzdHViLCB3aGljaCBpcyBvdmVybG9hZGVkIHRoZSBtb21lbnQgeW91IGxpbmsKISB3aXRoICplaXRoZXIqIGxpYnB0aHJlYWQgb3IgbGlidGhyZWFkLi4uCiNkZWZpbmUJWUlFTERfQ1BVCXRocl95aWVsZAojZWxzZQohIGFwcGxpZXMgYXQgbGVhc3QgdG8gTGludXggYW5kIEZyZWVCU0QuLi4gRmVlZGJhY2sgZXhwZWN0ZWQuLi4KI2RlZmluZQlZSUVMRF9DUFUJc2NoZWRfeWllbGQKI2VuZGlmCi5zcGluOgljYWxsCVlJRUxEX0NQVQoJbm9wCi5lbnRlcjoJbGQJWyVpMF0sJWkyCgljbXAJJWkyLC00MDk2CgliZQkuc3BpbgoJbW92CS0xLCVpMgoJc3dhcAlbJWkwXSwlaTIKCWNtcAklaTIsLTEKCWJlCS5zcGluCglhZGQJJWkyLCVpMSwlaTIKCXN0YmFyCglzdAklaTIsWyVpMF0KCXNyYQklaTIsJWcwLCVpMAoJcmV0CglyZXN0b3JlCi52OToKI2VuZGlmCglsZAlbJW8wXSwlbzIKMToJYWRkCSVvMSwlbzIsJW8zCgkud29yZAkweGQ3ZTIxMDBhCSFjYXMgWyVvMF0sJW8yLCVvMywgY29tcGFyZSBbJW8wXSB3aXRoICVvMiBhbmQgc3dhcCAlbzMKCWNtcAklbzIsJW8zCglibmUJMWIKCW1vdgklbzMsJW8yCQkhIGNhcyBpcyBhbHdheXMgZmV0Y2hpbmcgdG8gZGVzdC4gcmVnaXN0ZXIKCWFkZAklbzEsJW8yLCVvMAkhIE9wZW5TU0wgZXhwZWN0cyB0aGUgbmV3IHZhbHVlCglyZXRsCglzcmEJJW8wLCVnMCwlbzAJISB3ZSByZXR1cm4gc2lnbmVkIGludCwgcmVtZW1iZXI/Ci5zaXplCU9QRU5TU0xfYXRvbWljX2FkZCwuLU9QRU5TU0xfYXRvbWljX2FkZAoKLmdsb2JhbAlfc3BhcmN2OV9yZHRpY2sKLmFsaWduCTMyCl9zcGFyY3Y5X3JkdGljazoKCXN1YmNjCSVnMCwxLCVvMAoJLndvcmQJMHg5MTQwODAwMAkhcmQJJWNjciwlbzAKCWNtcAklbzAsMHg5OQoJYm5lCS5ub3RpY2sKCXhvcgklbzAsJW8wLCVvMAoJLndvcmQJMHg5MTQxMDAwMAkhcmQJJXRpY2ssJW8wCglyZXRsCgkud29yZAkweDkzMzIzMDIwCSFzcmx4CSVvMCwzMiwlbzEKLm5vdGljazoKCXJldGwKCXhvcgklbzEsJW8xLCVvMQoudHlwZQlfc3BhcmN2OV9yZHRpY2ssI2Z1bmN0aW9uCi5zaXplCV9zcGFyY3Y5X3JkdGljaywuLV9zcGFyY3Y5X3JkdGljawoKLmdsb2JhbAlfc3BhcmN2OV92aXMxX3Byb2JlCi5hbGlnbgk4Cl9zcGFyY3Y5X3ZpczFfcHJvYmU6Cgkud29yZAkweDgxYjAwZDgwCSFmeG9yCSVmMCwlZjAsJWYwCglhZGQJJXNwLEJJQVMrMiwlbzEKCXJldGwKCS53b3JkCTB4YzE5YTVhNDAJIWxkZGEJWyVvMV1BU0lfRlAxNl9QLCVmMAoudHlwZQlfc3BhcmN2OV92aXMxX3Byb2JlLCNmdW5jdGlvbgouc2l6ZQlfc3BhcmN2OV92aXMxX3Byb2JlLC4tX3NwYXJjdjlfdmlzMV9wcm9iZQoKISBQcm9iZSBhbmQgaW5zdHJ1bWVudCBWSVMxIGluc3RydWN0aW9uLiBPdXRwdXQgaXMgbnVtYmVyIG9mIGN5Y2xlcyBpdAohIHRha2VzIHRvIGV4ZWN1dGUgcmR0aWNrIGFuZCBwYWlyIG9mIFZJUzEgaW5zdHJ1Y3Rpb25zLiBVUy1UeCBWSVMgdW5pdAohIGlzIHNsb3cgKGRvY3VtZW50ZWQgdG8gYmUgNiBjeWNsZXMgb24gVDIpIGFuZCB0aGUgY29yZSBpcyBpbi1vcmRlcgohIHNpbmdsZS1pc3N1ZSwgaXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIGRpc3Rpbmd1aXNoIFR4IHJlbGlhYmx5Li4uCiEgT2JzZXJ2ZWQgcmV0dXJuIHZhbHVlcyBhcmU6CiEKIQlVbHRyYVNQQVJDIElJZQkJNwohCVVsdHJhU1BBUkMgSUlJCQk3CiEJVWx0cmFTUEFSQyBUMQkJMjQKIQohIE51bWJlcnMgZm9yIFQyIGFuZCBTUEFSQzY0IFYtVklJIGFyZSBtb3JlIHRoYW4gd2VsY29tZWQuCiEKISBJdCB3b3VsZCBiZSBwb3NzaWJsZSB0byBkZXRlY3Qgc3BlY2lmaWNhbGx5IFVTLVQxIGJ5IGluc3RydW1lbnRpbmcKISBmbXVsOHVseDE2LCB3aGljaCBpcyBlbXVsYXRlZCBvbiBUMSBhbmQgYXMgc3VjaCBhY2NvdW50cyBmb3IgcXVpdGUKISBhIGxvdCBvZiAldGljay1zLCBjb3VwbGUgb2YgdGhvdXNhbmQgb24gTGludXguLi4KLmdsb2JhbAlfc3BhcmN2OV92aXMxX2luc3RydW1lbnQKLmFsaWduCTgKX3NwYXJjdjlfdmlzMV9pbnN0cnVtZW50OgoJLndvcmQJMHg5MTQxMDAwMAkhcmQJJXRpY2ssJW8wCgkud29yZAkweDgxYjAwZDgwCSFmeG9yCSVmMCwlZjAsJWYwCgkud29yZAkweDg1YjA4ZDgyCSFmeG9yCSVmMiwlZjIsJWYyCgkud29yZAkweDkzNDEwMDAwCSFyZAkldGljaywlbzEKCS53b3JkCTB4ODFiMDBkODAJIWZ4b3IJJWYwLCVmMCwlZjAKCS53b3JkCTB4ODViMDhkODIJIWZ4b3IJJWYyLCVmMiwlZjIKCS53b3JkCTB4OTU0MTAwMDAJIXJkCSV0aWNrLCVvMgoJLndvcmQJMHg4MWIwMGQ4MAkhZnhvcgklZjAsJWYwLCVmMAoJLndvcmQJMHg4NWIwOGQ4MgkhZnhvcgklZjIsJWYyLCVmMgoJLndvcmQJMHg5NzQxMDAwMAkhcmQJJXRpY2ssJW8zCgkud29yZAkweDgxYjAwZDgwCSFmeG9yCSVmMCwlZjAsJWYwCgkud29yZAkweDg1YjA4ZDgyCSFmeG9yCSVmMiwlZjIsJWYyCgkud29yZAkweDk5NDEwMDAwCSFyZAkldGljaywlbzQKCgkhIGNhbGN1bGF0ZSBpbnRlcnZhbHMKCXN1YgklbzEsJW8wLCVvMAoJc3ViCSVvMiwlbzEsJW8xCglzdWIJJW8zLCVvMiwlbzIKCXN1YgklbzQsJW8zLCVvMwoKCSEgZmluZCBtaW51bXVtIHZhbHVlCgljbXAJJW8wLCVvMQoJLndvcmQJMHgzODY4MDAwMgkhYmd1LGEJJXhjYywuKzgKCW1vdgklbzEsJW8wCgljbXAJJW8wLCVvMgoJLndvcmQJMHgzODY4MDAwMgkhYmd1LGEJJXhjYywuKzgKCW1vdgklbzIsJW8wCgljbXAJJW8wLCVvMwoJLndvcmQJMHgzODY4MDAwMgkhYmd1LGEJJXhjYywuKzgKCW1vdgklbzMsJW8wCgoJcmV0bAoJbm9wCi50eXBlCV9zcGFyY3Y5X3ZpczFfaW5zdHJ1bWVudCwjZnVuY3Rpb24KLnNpemUJX3NwYXJjdjlfdmlzMV9pbnN0cnVtZW50LC4tX3NwYXJjdjlfdmlzMV9pbnN0cnVtZW50CgouZ2xvYmFsCV9zcGFyY3Y5X3ZpczJfcHJvYmUKLmFsaWduCTgKX3NwYXJjdjlfdmlzMl9wcm9iZToKCXJldGwKCS53b3JkCTB4ODFiMDA5ODAJIWJzaHVmZmxlCSVmMCwlZjAsJWYwCi50eXBlCV9zcGFyY3Y5X3ZpczJfcHJvYmUsI2Z1bmN0aW9uCi5zaXplCV9zcGFyY3Y5X3ZpczJfcHJvYmUsLi1fc3BhcmN2OV92aXMyX3Byb2JlCgouZ2xvYmFsCV9zcGFyY3Y5X2ZtYWRkX3Byb2JlCi5hbGlnbgk4Cl9zcGFyY3Y5X2ZtYWRkX3Byb2JlOgoJLndvcmQJMHg4MWIwMGQ4MAkhZnhvcgklZjAsJWYwLCVmMAoJLndvcmQJMHg4NWIwOGQ4MgkhZnhvcgklZjIsJWYyLCVmMgoJcmV0bAoJLndvcmQJMHg4MWI4MDQ0MAkhZm1hZGRkCSVmMCwlZjAsJWYyLCVmMAoudHlwZQlfc3BhcmN2OV9mbWFkZF9wcm9iZSwjZnVuY3Rpb24KLnNpemUJX3NwYXJjdjlfZm1hZGRfcHJvYmUsLi1fc3BhcmN2OV9mbWFkZF9wcm9iZQoKLmdsb2JhbAlPUEVOU1NMX2NsZWFuc2UKLmFsaWduCTMyCk9QRU5TU0xfY2xlYW5zZToKCWNtcAklbzEsMTQKCW5vcAojaWZkZWYgQUJJNjQKCWJndQkleGNjLC5Mb3QKI2Vsc2UKCWJndQkuTG90CiNlbmRpZgoJY21wCSVvMSwwCglibmUJLkxpdHRsZQoJbm9wCglyZXRsCglub3AKCi5MaXR0bGU6CglzdGIJJWcwLFslbzBdCglzdWJjYwklbzEsMSwlbzEKCWJuegkuTGl0dGxlCglhZGQJJW8wLDEsJW8wCglyZXRsCglub3AKLmFsaWduCTMyCi5Mb3Q6CiNpZm5kZWYgQUJJNjQKCXN1YmNjCSVnMCwxLCVnMQoJISBzZWUgYWJvdmUgZm9yIGV4cGxhbmF0aW9uCgkud29yZAkweDgzNDA4MDAwCSFyZAklY2NyLCVnMQoJY21wCSVnMSwweDk5CglibmUJLnY4bG90Cglub3AKI2VuZGlmCgoudjlsb3Q6CWFuZGNjCSVvMCw3LCVnMAoJYnoJLnY5YWxpZ25lZAoJbm9wCglzdGIJJWcwLFslbzBdCglzdWIJJW8xLDEsJW8xCgliYQkudjlsb3QKCWFkZAklbzAsMSwlbzAKLmFsaWduCTE2LDB4MDEwMDAwMDAKLnY5YWxpZ25lZDoKCS53b3JkCTB4YzA3MjAwMDAJIXN0eAklZzAsWyVvMF0KCXN1YgklbzEsOCwlbzEKCWFuZGNjCSVvMSwtOCwlZzAKI2lmZGVmIEFCSTY0Cgkud29yZAkweDEyNmZmZmZkCSFibnoJJXhjYywudjlhbGlnbmVkCiNlbHNlCgkud29yZAkweDEyNGZmZmZkCSFibnoJJWljYywudjlhbGlnbmVkCiNlbmRpZgoJYWRkCSVvMCw4LCVvMAoKCWNtcAklbzEsMAoJYm5lCS5MaXR0bGUKCW5vcAoJcmV0bAoJbm9wCiNpZm5kZWYgQUJJNjQKLnY4bG90OglhbmRjYwklbzAsMywlZzAKCWJ6CS52OGFsaWduZWQKCW5vcAoJc3RiCSVnMCxbJW8wXQoJc3ViCSVvMSwxLCVvMQoJYmEJLnY4bG90CglhZGQJJW8wLDEsJW8wCglub3AKLnY4YWxpZ25lZDoKCXN0CSVnMCxbJW8wXQoJc3ViCSVvMSw0LCVvMQoJYW5kY2MJJW8xLC00LCVnMAoJYm56CS52OGFsaWduZWQKCWFkZAklbzAsNCwlbzAKCgljbXAJJW8xLDAKCWJuZQkuTGl0dGxlCglub3AKCXJldGwKCW5vcAojZW5kaWYKLnR5cGUJT1BFTlNTTF9jbGVhbnNlLCNmdW5jdGlvbgouc2l6ZQlPUEVOU1NMX2NsZWFuc2UsLi1PUEVOU1NMX2NsZWFuc2UKCi5nbG9iYWwJX3NwYXJjdjlfdmlzMV9pbnN0cnVtZW50X2J1cwouYWxpZ24JOApfc3BhcmN2OV92aXMxX2luc3RydW1lbnRfYnVzOgoJbW92CSVvMSwlbzMJCQkJCSEgc2F2ZSBjbnQKCS53b3JkCTB4OTk0MTAwMDAJIXJkCSV0aWNrLCVvNAkhIHRpY2sKCW1vdgklbzQsJW81CQkJCQkhIGxhc3R0aWNrID0gdGljawoJc2V0CTAsJWc0CQkJCQkhIGRpZmYKCglhbmRuCSVvMCw2MywlZzEKCS53b3JkCTB4YzE5ODVlMDAJIWxkZGEJWyVnMV0weGYwLCVmMAkhIGJsb2NrIGxvYWQKCS53b3JkCTB4ODE0M2UwNDAJIW1lbWJhcgkjU3luYwoJLndvcmQJMHhjMWI4NWMwMAkhc3RkYQklZjAsWyVnMV0weGUwCSEgYmxvY2sgc3RvcmUgYW5kIGNvbW1pdAoJLndvcmQJMHg4MTQzZTA0MAkhbWVtYmFyCSNTeW5jCglsZAlbJW8wXSwlbzQKCWFkZAklbzQsJWc0LCVnNAoJLndvcmQJMHhjOWUyMTAwYwkhY2FzCVslbzBdLCVvNCwlZzQKCi5Mb29wOgkud29yZAkweDk5NDEwMDAwCSFyZAkldGljaywlbzQKCXN1YgklbzQsJW81LCVnNAkJCQkhIGRpZmY9dGljay1sYXN0dGljawoJbW92CSVvNCwlbzUJCQkJCSEgbGFzdHRpY2s9dGljawoKCWFuZG4JJW8wLDYzLCVnMQoJLndvcmQJMHhjMTk4NWUwMAkhbGRkYQlbJWcxXTB4ZjAsJWYwCSEgYmxvY2sgbG9hZAoJLndvcmQJMHg4MTQzZTA0MAkhbWVtYmFyCSNTeW5jCgkud29yZAkweGMxYjg1YzAwCSFzdGRhCSVmMCxbJWcxXTB4ZTAJISBibG9jayBzdG9yZSBhbmQgY29tbWl0Cgkud29yZAkweDgxNDNlMDQwCSFtZW1iYXIJI1N5bmMKCWxkCVslbzBdLCVvNAoJYWRkCSVvNCwlZzQsJWc0Cgkud29yZAkweGM5ZTIxMDBjCSFjYXMJWyVvMF0sJW80LCVnNAoJc3ViY2MJJW8xLDEsJW8xCQkJCSEgLS0kY250CglibnoJLkxvb3AKCWFkZAklbzAsNCwlbzAJCQkJISArKyRvdXQKCglyZXRsCgltb3YJJW8zLCVvMAoudHlwZQlfc3BhcmN2OV92aXMxX2luc3RydW1lbnRfYnVzLCNmdW5jdGlvbgouc2l6ZQlfc3BhcmN2OV92aXMxX2luc3RydW1lbnRfYnVzLC4tX3NwYXJjdjlfdmlzMV9pbnN0cnVtZW50X2J1cwoKLmdsb2JhbAlfc3BhcmN2OV92aXMxX2luc3RydW1lbnRfYnVzMgouYWxpZ24JOApfc3BhcmN2OV92aXMxX2luc3RydW1lbnRfYnVzMjoKCW1vdgklbzEsJW8zCQkJCQkhIHNhdmUgY250CglzbGwJJW8xLDIsJW8xCQkJCSEgY250Kj00CgoJLndvcmQJMHg5OTQxMDAwMAkhcmQJJXRpY2ssJW80CSEgdGljawoJbW92CSVvNCwlbzUJCQkJCSEgbGFzdHRpY2sgPSB0aWNrCglzZXQJMCwlZzQJCQkJCSEgZGlmZgoKCWFuZG4JJW8wLDYzLCVnMQoJLndvcmQJMHhjMTk4NWUwMAkhbGRkYQlbJWcxXTB4ZjAsJWYwCSEgYmxvY2sgbG9hZAoJLndvcmQJMHg4MTQzZTA0MAkhbWVtYmFyCSNTeW5jCgkud29yZAkweGMxYjg1YzAwCSFzdGRhCSVmMCxbJWcxXTB4ZTAJISBibG9jayBzdG9yZSBhbmQgY29tbWl0Cgkud29yZAkweDgxNDNlMDQwCSFtZW1iYXIJI1N5bmMKCWxkCVslbzBdLCVvNAoJYWRkCSVvNCwlZzQsJWc0Cgkud29yZAkweGM5ZTIxMDBjCSFjYXMJWyVvMF0sJW80LCVnNAoKCS53b3JkCTB4OTk0MTAwMDAJIXJkCSV0aWNrLCVvNAkhIHRpY2sKCXN1YgklbzQsJW81LCVnNAkJCQkhIGRpZmY9dGljay1sYXN0dGljawoJbW92CSVvNCwlbzUJCQkJCSEgbGFzdHRpY2s9dGljawoJbW92CSVnNCwlZzUJCQkJCSEgbGFzdGRpZmY9ZGlmZgouTG9vcDI6CglhbmRuCSVvMCw2MywlZzEKCS53b3JkCTB4YzE5ODVlMDAJIWxkZGEJWyVnMV0weGYwLCVmMAkhIGJsb2NrIGxvYWQKCS53b3JkCTB4ODE0M2UwNDAJIW1lbWJhcgkjU3luYwoJLndvcmQJMHhjMWI4NWMwMAkhc3RkYQklZjAsWyVnMV0weGUwCSEgYmxvY2sgc3RvcmUgYW5kIGNvbW1pdAoJLndvcmQJMHg4MTQzZTA0MAkhbWVtYmFyCSNTeW5jCglsZAlbJW8wXSwlbzQKCWFkZAklbzQsJWc0LCVnNAoJLndvcmQJMHhjOWUyMTAwYwkhY2FzCVslbzBdLCVvNCwlZzQKCglzdWJjYwklbzIsMSwlbzIJCQkJISAtLW1heAoJYnoJLkxkb25lMgoJbm9wCgoJLndvcmQJMHg5OTQxMDAwMAkhcmQJJXRpY2ssJW80CSEgdGljawoJc3ViCSVvNCwlbzUsJWc0CQkJCSEgZGlmZj10aWNrLWxhc3R0aWNrCgltb3YJJW80LCVvNQkJCQkJISBsYXN0dGljaz10aWNrCgljbXAJJWc0LCVnNQoJbW92CSVnNCwlZzUJCQkJCSEgbGFzdGRpZmY9ZGlmZgoKCS53b3JkCTB4ODM0MDgwMDAJIXJkCSVjY3IsJWcxCglhbmQJJWcxLDQsJWcxCQkJCSEgaXNvbGF0ZSB6ZXJvIGZsYWcKCXhvcgklZzEsNCwlZzEJCQkJISBmbGlwIHplcm8gZmxhZwoKCXN1YmNjCSVvMSwlZzEsJW8xCQkJCSEgY29uZGl0aW9uYWwgLS0kY250CglibnoJLkxvb3AyCglhZGQJJW8wLCVnMSwlbzAJCQkJISBjb25kaXRpb25hbCArKyRvdXQKCi5MZG9uZTI6CglzcmwJJW8xLDIsJW8xCglyZXRsCglzdWIJJW8zLCVvMSwlbzAKLnR5cGUJX3NwYXJjdjlfdmlzMV9pbnN0cnVtZW50X2J1czIsI2Z1bmN0aW9uCi5zaXplCV9zcGFyY3Y5X3ZpczFfaW5zdHJ1bWVudF9idXMyLC4tX3NwYXJjdjlfdmlzMV9pbnN0cnVtZW50X2J1czIKCi5zZWN0aW9uCSIuaW5pdCIsI2FsbG9jLCNleGVjaW5zdHIKCWNhbGwJT1BFTlNTTF9jcHVpZF9zZXR1cAoJbm9wCg==